springboot 根据不同配置文件来设定常量的值

springboot 根据不同配置文件来设定常量的值

原因:不同环境下(开发环境和正式环境)动态设置常量的值,比如将文件以绝对路径保存时,开发环境(windows系统)和正式环境(linux系统)的路径肯定是不同的,这时就需要根据配置文件来设置路径了

  1. 在配置文件中配置路径,然后通过import org.springframework.beans.factory.annotation包下的@Value注解获取
hdfs:
  path: hdfs://192.168.2.13:9000
  user: root
----------------------------------------------------------
	@Value("${hdfs.path}")
    private String hdfsPath;
    @Value("${hdfs.user}")
    private String hdfsUser
  1. 在配置文件中配置路径,通过注解==@ConfigurationProperties(prefix = ConfigProperties.PREFIX)
    ==读取配置文件中的前缀,从而获取此路径下配置的常量
# 自定义配置
ws:
  logFilePath: E:/var/log/ad/pointcloud
--------------------------------分割线---------------------------------------------
// //这里相当于是将"ws"作为ConfigProperties 类,logFilePath为对应的成员变量
@Component
@ConfigurationProperties(prefix = ConfigProperties.PREFIX)
public class ConfigProperties {
    public static final String PREFIX = "ws";

    private String logFilePath;


    public String getLogFilePath() {
        return logFilePath;
    }

    public void setLogFilePath(String logFilePath) {
        this.logFilePath = logFilePath;
    }
}
  1. 现获取激活的配置文件,并通过实现import org.springframework.beans.factory包下的接口InitializingBean来初始化bean,从而复写afterPropertiesSet() 方法,在设置好配置文件后动态设定常量的值
@Configuration
public class FileConstant implements InitializingBean {

//    public static final String FILE_DIR = "D:"+ File.separator +"las";

    public static String FILE_DIR = null;

    @Value("${spring.profiles.active}")
    private String env;

    @Override
    public void afterPropertiesSet() throws Exception {
        if ("dev".equals(env) || "demo".equals(env))//判断active下的配置文件后缀
            FILE_DIR = "E:" + File.separator + "file";
        else if ("test".equals(env))
            FILE_DIR = "/data/tmpDir";
        else
            FILE_DIR = "/dev/nvme0n1p2";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值