@ConfigurationProperties&@PropertySource&@Value&@ImportResource&@Bean

配置文件值注入

@ConfigurationProperties

@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关
的配置进行绑定,一般都是将applicatio.properties或者application.yml里面的K:V配
置根据prefix前缀名进行映射
javaBean对象
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
配置文件 application.yml
person:
  lastName: haha
  age: 18
  boss: false
  birth: 2022/01/01
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - wangwu
  dog:
    name: 芒果
    age: 1

配置文件application.properties

#解决乱码问题
spring.message.encoding=UTF-8
#person
person.last-name=haha
person.age=20
person.birth=2019/02/02
person.boss=true
person.maps.k1=v1
person.maps.k2=v2
person.lists=a,b,c
person.dog.name=x想
person.dog.age=5

-@Value

@ConfigurationProperties 与 @Value 的区别:
  • @ConfigurationProperties 是批量注入配置文件中的属性,@Value 是一个个指定
  • @ConfigurationProperties 支持松散绑定(松散语法) 、不支持SpEL(表达式如#{2*4})、支持JSR303数据校验 、支持复杂类型封装(如map)
  • @Value 不支持松散绑定(松散语法) 、支持SpEL、不支持JSR303数据校验 、不支持复杂类型封装

我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value

松散绑定:
– person.firstName:使用标准方式
– person.first-name:大写用-
– person.first_name:大写用_
– PERSON_FIRST_NAME:推荐系统属性使用这种写法

JSR303数据校验:
在这里插入图片描述

@ImportResource

导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

@ImportResource(locations = {"classpath:beans.xml"})
导入Spring的配置文件让其生效

@PropertySource

  // @PropertySource告诉SpringBoot将本类中的所有属性和配置文件中相关
  //	的配置进行绑定,一般都是将指定的配置文件里面的K:V配置进行映射
 	
@PropertySource(value = {"classpath:person.properties"})
@Component
public class Person {

    private String lastName;
 
    private Integer age;
 
    private Boolean boss;
  • @Bean
    配置类@Configuration------>类似Spring xml配置文件
    使用@Bean给容器中添加组件,类似于初始化一个可以被spring容器加载的bean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值