一,Spring给属性赋值 @value
注解
有这样一个类
@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dog {
@Value("旺财")
private String name;
@Value("3")
private Integer age;
}
在属性上方添加@Value
注解,写入属性值。然后在测试类打印:
@SpringBootTest
class Spring02ConfigApplicationTests {
@Autowired
private Dog dog;
@Test
void contextLoads() {
System.out.println(dog);
}
}
属性添加成功
一,使用yaml给属性赋值
还有这样一个实体类:
@Component
@ConfigurationProperties(prefix ="person")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private Integer age;
private String name;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Object> list;
private Dog dog;
}
在yaml配置文件中为Person
属性添加值,如下:
Person:
age: 18
name: tt
happy: false
birth: 2020/11/11
maps: {k1:v1,k2:v2}
list:
- sing
- dance
- rap
dog:
name: 旺财
age: 3
在Person
类上添加@ConfigurationProperties(prefix ="person")
注解,将yaml中的person绑定进去。
@ConfigurationProperties注解的作用:
- 将配置文件中的每一个属性的值,映射到这个组件中;
- 告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定
- 参数`prefix="person"`:将配置文件中的person下面的属性一一对应
-当这个组件是容器中的组件时,才能使用容器提供的@ConfigurationProperties注解功能
运行测试:
@SpringBootTest
class Spring02ConfigApplicationTests {
@Autowired
private Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}