使用@Value注解获取yml配置文件中的自定义属性(三种不同环境下详细获取方式:变量+静态变量+静态代码块)
文章目录一。配置文件说明二。常量属性获取三。静态变量获取四。静态代码块获取一。配置文件说明1.application.yml配置:(这里使用的是application-local.yml配置文件)2.application-local.yml自定义属性配置:二。常量属性获取@Value("${fastdfs_config.path}")private String path;三。静态变量获取1.第
·
一。配置文件说明
1.application.yml配置:(这里使用的是application-local.yml配置文件)
2.application-local.yml自定义属性配置:
二。变量属性获取
@Value("${fastdfs_config.path}")
private String path;
三。静态变量获取
1.第一种方式:
//fastdfs配置文件所在路径
private static String filePath;
@Value("${fastdfs_config.path}")
public void setFilePath(String path){
this.filePath=path;
}
2.第二种方式:
@Value("${fastdfs_config.path}")
private static String filePath;
@PostConstruct
public void setPath(String path){
this.filePath=path;
}
四。静态代码块获取
static {
try {
//获取配置文件中自定义的fastdfs_config.path值
String filePath=(String)getCommonYml("fastdfs_config.path");
ClientGlobal.init(filePath);
} catch (IOException e) {
logger.error("Get FastDFS config file fail!",e);
} catch (MyException e) {
logger.error("FastDF init fail!",e);
}
}
//获取application-local.yml文件中的属性配置
public static Object getCommonYml(Object key){
Resource resource = new ClassPathResource("/application-local.yml");
Properties properties = null;
try {
YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean();
yamlFactory.setResources(resource);
properties = yamlFactory.getObject();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return properties.get(key);
}
特别注意的是:需要与@Component、@Service等Spring注解配合开启!!!
额外方式:使用两个配置类加载静态代码块
读取配置文件配置类UserFileConfig:
package com.hdyanfa.interact.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
/**
* @Description:读取配置文件配置类
* @Author :zks
* @Date :15:40 2021/3/4
*/
@Configuration
public class UserFileConfig {
/**
* fastDFS配置所在地址
*/
@Value("${fastdfs_config.path}")
private String fastDfs_path;
public UserFileConfig() {
}
public String getFastDfs_path() {
return fastDfs_path;
}
public void setFastDfs_path(String fastDfs_path) {
this.fastDfs_path = fastDfs_path;
}
@PostConstruct
public void initFileConfig() {
FastDfsConfig.initFileConfigUitls(this);
}
}
fastdfs配置类FastDfsConfig:
package com.hdyanfa.interact.config;
/**
* @Description:fastdfs配置类
* @Author :zks
* @Date :15:52 2021/3/4
*/
public class FastDfsConfig {
/**
* fastDFS配置文件所在地址
*/
private static String fastDfs_path;
public FastDfsConfig() {
}
public static String getFastDfs_path() {
return fastDfs_path;
}
public static void setFastDfs_path(String fastDfs_path) {
FastDfsConfig.fastDfs_path = fastDfs_path;
}
public static void initFileConfigUitls(UserFileConfig userFileConfig) {
FastDfsConfig.fastDfs_path=userFileConfig.getFastDfs_path();
}
}
使用:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献9条内容
所有评论(0)