@ConfigurationProperties和@Value不同的使用场景 (补充:5.spring boot配置文件注入@ConfigurationProperties)

接上文

注释掉@ConfigurationProperties使用@Value注解

    /**
     * <bean class="Person">
     *     <property name="lastName" value="字面量/${key}从环境变量、配置文件中获取值/#{spel}"></property>
     * <bean/>
     */
//Spring底层注解
    @Value("${person.last-name}")
    private String lastName;

    @Value("#{11*2}")
    private Integer age;

  

测试可以获取到

  1.                               @configurationpropertis                        @Value
  2.  功能:                  批量注入                                                  一个个指定
  3. 松散绑定:            支持。last-name等价于lastName           不支持
  4. SPEL                     不支持                                                    支持
  5. JSR303数据校验    支持。校验在属性中@Email                 不支持
  6. 复杂类型封装         支持                                                       不支持 ${person.dogs}报错

如果只是在某个业务需要获取一下配置文件中的某个值,使用@Value

 如果专门编写一个javaBean和配置文件进行映射,就直接用@configurationProperties批量注入

猜你喜欢

转载自www.cnblogs.com/tabCtrlShift/p/9074600.html