在spring boot项目中自定义配置文件是常有的事情,记录下解决方案.
一般有两种,一种是使用$Value()注解直接注解在相关属性上,还有一种是写一个类去接收相关参数
方案1
很简单,直接在需要相关自定义配置的类中的属性上使用$Value()注解即可,
@Value("${auther}")
private String auther;
方案2
个人比较推荐使用这种方法,这种方法感觉更好维护,并且易于分类,在我的项目中一般使用一个总的项目配置类,然后下面按类别去写相关配置类,
在properties(或者yml)文件中按属性名写好相关配置.
下面给出一个简单的例子。
//ProjectProperties.java
@Component
@Data
@ConfigurationProperties(prefix = "project")
public class ProjectProperties {
private FilePathProperties filePathProperties = new FilePathProperties();
}
// FilePathProperties.java
@Data
public class FilePathProperties {
private String basePath = "/home/earthchen/";
}
// xxx.java
@Component
public class xxx(){
@Autowired
private ProjectProperties projectProperties;
// xxxxx然后使用projectProperties去get相关属性即可。
}
# application.yml
project:
filePathProperties:
basePath: /home/earthchen/work/
注: yml文件中的属性名必须和类中的属性一致
以上就可以实现自定义配置啦,后续有更多的配置只需要在ProjectProperties.java中添加即可。
注:
- 上述测试在ubuntu16.04 lts jdk1.8 spring boot 1.5.6.RELEASE中成功
- 上述文字皆为个人看法,如有错误或建议请及时联系我
网友评论