第一种,@ConfigurationProperties
首先导入相关maven依赖:
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
相关yml配置文件:
employee:
name: leungchunwai
gender: male
age: 23
map: {country: Malaysia,city: KualaLumpur}
list:
- Penang
- Langkawi
bank:
name: Maybank
address: KualaLumpur
对应配置类:
/**
* 将配置文件中配置的每一个属性的值,映射到这个组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* prefix = "employee":配置文件中哪个下面的所有属性进行一一映射
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
*/
@Data
@Component
@ConfigurationProperties(prefix = "employee")
public class Employee{
private String name;
private String gender;
private Integer age;
private Map<String,Object> map;
private List<Object> list;
private Bank bank;
}
第二种,@Value
如果只是在某个业务逻辑中需要获取一下配置文件中的某项值,那么就使用@Value。
@Value(“#{}”) | 用来获取bean的属性,调用bean的某个方法,也可以表示常量。#相当于赋值给该字段。 |
@Value(“${}”) | 从配置文件读取值,$相当于取值到该字段。 |
@Value("${employee.name}")
private String name;
@Value("#{23}")
private Integer age;
第三种,@PropertySource
@PropertySource指定配置文件,只支持properties文件,不支持yml。
打上该注解即可。
@PropertySource(value = {"classpath:employee.properties"})