一、spring boot的自定义配置:在项目中经常会遇到在spring boot 的配置文件中配置一些自己的属性的配置(如:某个工具的安装路径)
1、引入jar包依赖
<!--spring boot 自定义配置使用依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2、定义属性:
package com.example.demo.model;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 自定义配置属性
* @author wz
*
*/
@Component
@ConfigurationProperties(prefix="my.config")
public class LibOfficeConfig {
/**
* libreOffice的安装路径
*/
private String home_name;
public String getHome_name() {
return home_name;
}
public void setHome_name(String home_name) {
this.home_name = home_name;
}
}
3、在spring boot配置文件中定义
4、测试类:
@Autowired
private LibOfficeConfig libOfficeUtil;
/**
* 测试自定义配置属性
* @return
*/
@RequestMapping("/ceshi")
public Result ceshi() {
System.out.println("=="+libOfficeUtil.getHome_name());
return null;
}
5、结果:
二、以上方法不可以再静态方法中调用,那么怎么再静态方法中调用呢,一般封装一个工具类,会有此需要
在之前的配置类中加入一个静态属性,在其中赋值即可
package com.example.demo.model;
import javax.annotation.PostConstruct;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 自定义配置属性
* @author wz
*
*/
@Component
@ConfigurationProperties(prefix="my.config")
public class LibOfficeConfig {
/**
* libreOffice的安装路径
*/
private String home_name;
public String getHome_name() {
return home_name;
}
public void setHome_name(String home_name) {
this.home_name = home_name;
}
private static String home_names;
@PostConstruct
public void setHome_names() {
home_names = this.home_name;
}
public static String getHome_names() {
return home_names;
}
}
@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法知性之后执行
测试:
结果:
版权声明:本文为xfy18317776108原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。