你们知道yml的配置信息怎么读取的吗?

1 用代码解释怎么使用
1.1 userInfo实体
```
public class UserInfo{
private Integer userId;
private String userName;
private String userPassword;
private String userAddress;
//省去get/set方法
}
```
1.2 userInfo.properties
```
#自定义参数前缀名字
spring.user.user-id=123
spring.user.user-name=小明
spring.user.user-password=xiaoming
spring.user.user-address=上海
```
1.3 application.properties
```
spring.main.allow-bean-definition-overriding=true
```
在application.properties里面写这句话,主要是为了预防会报错,具体错信息:A bean with that name has already been defined in file
1.4 读取配置文件,并使用configurationproperties映射到实体里面
```
@Configuration
@PropertySource(value={"classpath:userInfo.properties"},encoding="utf-8")
public class SpringConfig{
@Bean
@ConfigurationProperties(prefix="spring.user")
public UserInfo userInfo(){
return new UserInfo();
}
````
1.5 启动类
```
@SpringBootApplication
public class AppStringBoot{
public static void main(String[] args){
SpringApplication.run(AppStringBoot.class,args);
}
}
```
1.6 测试类
```
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={AppStringBoot.class})
public class TestUserInfo{
@Autowired
private UserInfo userInfo;
@Test
public void testUserInfo(){
System.out.println(userInfo);
}
}
```
1.7 @ConfigurationProperties和@Value对比

如果只是某个业务中需要获取配置文件中的某项值或者设置具体值,可以使用@Value;
如果一个JavaBean中大量属性值要和配置文件进行映射,可以使用@ConfigurationProperties;
转载:https://blog.csdn.net/u012060033/java/article/details/90477190

StringBoot中@ConfigurationProperties注解的使用讲解