分享

springboot-加载自定义的properties文件

 WindySky 2017-10-25 发布于广东

在我们的开发中,有很多配置文件是需要分开配置的,例如kafka.properties,amq.properties等,那这些自定义的配置文件,怎么加载到对应的类里面了,下面就来说说这个问题。

在src/main/resources目录下新建一个config文件夹,用来存放我们的properties文件。目录结构如下:


user.properties配置文件内容如下:

  1. com.chhliu.springboot.author=xyy  
  2. com.chhliu.springboot.age=${com.chhliu.age}  
  3. com.chhliu.springboot.sex=woman  
  4. com.chhliu.springboot.time=20170123  
  5. com.chhliu.age=27  

对应的配置类如下:

  1. public class ConfigProperties {  
  2.       
  3.     private String author;  
  4.     private int age;  
  5.     private String sex;  
  6.     private String time;  
  7.     public String getAuthor() {  
  8.         return author;  
  9.     }  
  10.     public void setAuthor(String author) {  
  11.         this.author = author;  
  12.     }  
  13.     public int getAge() {  
  14.         return age;  
  15.     }  
  16.     public void setAge(int age) {  
  17.         this.age = age;  
  18.     }  
  19.     public String getSex() {  
  20.         return sex;  
  21.     }  
  22.     public void setSex(String sex) {  
  23.         this.sex = sex;  
  24.     }  
  25.     public String getTime() {  
  26.         return time;  
  27.     }  
  28.     public void setTime(String time) {  
  29.         this.time = time;  
  30.     }  
  31.     @Override  
  32.     public String toString() {  
  33.         return "ConfigProperties [author=" + author + ", age=" + age + ", sex=" + sex + ", time=" + time + "]";  
  34.     }  
  35. }  

我们怎么来将配置文件里面对应的属性注入到类中了,方法有二

1、过时方法

1.1 在ConfigProperties类上加上如下注解:

  1. @ConfigurationProperties(locations="classpath:config/user.properties", prefix="com.chhliu.springboot")  

其中locations属性用来指定配置文件的位置,prefix用来指定properties配置文件中的key前缀

1.2 在主类上加入配置支持

  1. @EnableConfigurationProperties(ConfigProperties.class)  

这样就可以将properties配置文件中的值注入到类中对应的属性上去了,但是上面的这种方式已经被标注为过时了,在新的版本中是不可用的。


2、替代方法

1.1 在ConfigProperties类上加上如下注解:

  1. @Component// 以组件的方式使用,使用的时候可以直接注入  
  2. @ConfigurationProperties(prefix="com.chhliu.springboot")// 用来指定properties配置文件中的key前缀  
  3. @PropertySource("classpath:config/user.properties")// 用来指定配置文件的位置  

1.2 关闭配置属性的支持

这一步就是将主类上的@EnableConfigurationProperties这个注解注释调,不让springboot自动配置,使用我们的手动配置


3、测试结果

  1. ConfigProperties [author=xyy, age=27, sex=woman, time=20170123]  

从上面的测试结果,可以看出,配置生效了。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多