简介
下面来简单介绍下Sping Boot中如何使用@ConfigurationProperties加载配置文件的内容
使用方式
- 要加载配置文件的内容,我们得先创建一个配置文件,文件位置在项目的resources中,文件名为application.properties
my.name=lixuelongmy.gender=manmy.age=25
- 接着,我们再创建一个与该配置对应的对象,文件位置在包DTO中,文件名为MyInfoConfig.java
package cn.lixuelong.DTO;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "my")public class MyInfoConfig { private String name; private String gender; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "MyInfoConfig{" + "name='" + name + '\'' + ", gender='" + gender + '\'' + ", age='" + age + '\'' + '}'; }}
你应该注意到这个对象上的@ConfigurationProperties(prefix="my") 这个注解了,属性prefix="my" 就是要告诉Sping Boot 我要加载application.properties中以"my."开头的属性(对象中的字段要和属性的名称一一对应)
- 然后我们在Sping Boot的主类中进行下配置
@RestController@EnableAutoConfiguration@EnableConfigurationProperties(MyInfoConfig.class)public class Application { @Autowired public MyInfoConfig myInfoConfig; @RequestMapping("/") public String home() { return myInfoConfig.toString();; } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
主要看@EnableConfigurationProperties(MyInfoConfig.class) 和 @Autowired 这两句,到这,配置的属性就已经被注入进来了
- 那如果我的属性不是写在application.properties中呢?那也简单,比如说,将application.properties改名为myInfo.properties,只需将MyInfoConfig.java中的配置稍作改动即可
@ConfigurationProperties(locations="classpath:/myInfo.properties",prefix = "my")
-
运行Application.java中的main方法,没有错误的话,访问一下 http://localhost:8080/ ,是不是看到你配置的属性了~