Springboot如何获取yml、properties参数
作者:观海听涛丶 时间:2021-09-20 17:34:43
如何获取yml、properties参数
1、使用@Value()注解
1.1 配置数据
如:在properties.yml文件配置如下数据
message_zh: 张三
message_en: ergouzi
在controller中获取:
1.2 读取数据
读取自定义文件:须加注解
@PropertySource(value = {"classpath:config.yml","classpath:config.properties"})
读取application文件不需要加注解
// 中文
@Value("${message_zh}")
private String message_zh;
// 英文
@Value("${message_en}")
private String message_en;
@RequestMapping(value = "/{id}")
public String index(HttpServletRequest request, @PathVariable Integer id){
? ? if (id == 1 ){
? ? ? ? request.setAttribute("info",message_zh);
? ? }else {
? ? ? ? request.setAttribute("info", message_en);
? ? }
? ? return "index";
}
2、使用 @component
@ConfigurationProperties(prefix = "user")
@PropertySource(value = "classpath:myConfig.properties")
首先在myConfig.properties或myConfig.yml中配置参数:
user.userName = '李二狗'
user.password = 'admin'
2.1 javabean
/**
?* 〈一句话功能简述〉<br>?
?* 〈yml或properties配置参数〉
?*
?* @author 丶Zh1Guo
?* @create 2018/11/21
?* @since 1.0.0
?*/
@Component// 组件
@ConfigurationProperties(prefix = "user")? // 前缀
@PropertySource(value = "classpath:myConfig.properties")// 自定义配置文件路径
public class properConfig {
? ? private String userName;// 注意要和配置文件一致
? ? private String password;
? ? public String getUserName() {
? ? ? ? return userName;
? ? }
? ? public void setUserName(String userName) {
? ? ? ? this.userName = userName;
? ? }
? ? public String getPassword() {
? ? ? ? return password;
? ? }
? ? public void setPassword(String password) {
? ? ? ? this.password = password;
? ? }
}
2.2 controller
/**
?* 〈一句话功能简述〉<br>?
?* 〈〉
?*
?* @author 丶Zh1Guo
?* @create 2018/11/21
?* @since 1.0.0
?*/
@restController
public class template {
? ? @Autowired
? ? properConfig config;
? ? @RequestMapping(value = "/config")
? ? public String config(){
? ? ? ? return config.getUserName();
? ? }
}
总结:
第一种方法适合只取某些数据
第二种方法适合取所有数据
yml和properties区别
yml:key:(空格)value
properties: key = value
配置文件读取yml自定义参数(亲测可用)
dict:
? js:
? ? url: D:\jsFile\
首先自定义一个参数
@Component
@Data
@ConfigurationProperties(prefix = "dict.js")
@PropertySource(value = "classpath:application-dev.yml")
public class PropertisParam {
? ? private String url;
}
利用平时@value 获取值
然后在所需要的调用的配置类里面注入PropertisParam,利用@PostConstruct初始化值
@Resource
private PropertisParam param;
private static String root=null;
@PostConstruct
public void init(){
? ? root = param.getUrl();
}
另一种方式
@Data
@Component
@ConfigurationProperties(prefix = "spring")
public class LoginBody {
? ? private String appid;
? ? private String apiCode;
? ? private String userName;
}
基本写法就不解释了:主要讲一哈注入方式
类上面添加@component
private static LoginBody loginBody;
@Resource
public void init(LoginBody loginBody) {
? ? SecurityUtil.loginBody = loginBody;
}
来源:https://www.cnblogs.com/wangzh1guo/p/9995248.html
标签:Springboot,yml,properties,参数
0
投稿
猜你喜欢
Java如何在PDF中添加ToolTip工具提示
2021-12-31 12:12:53
Android Gradle多渠道打包的实现方法
2023-04-26 17:03:26
Java SpringBoot实现带界面的代码生成器详解
2023-09-28 11:54:14
Java使用 try-with-resources 实现自动关闭资源的方法
2022-01-09 06:54:46
C/C++根据年月日计算星期几(蔡勒公式篇)
2023-12-05 00:48:16
SpringMVC执行过程详细讲解
2023-06-07 10:04:54
Netty与NIO超详细讲解
2022-08-16 00:44:37
Intellij IDEA 2018配置Java运行环境的方法步骤
2023-06-08 09:56:50
maven的pom文件与打包详解
2023-12-24 00:23:51
Android编程实现点击EditText之外的控件隐藏软键盘功能
2022-08-07 02:06:08
C# WPF实现的语音播放自定义控件
2022-11-23 19:45:49
浅谈Java 继承接口同名函数问题
2023-07-22 13:28:47
C# TSC打印二维码和条形码的实现方法
2021-10-06 14:39:53
示例解析java面向对象编程封装与访问控制
2021-10-18 19:55:19
分析ABA问题的本质及其解决办法
2021-12-20 13:59:26
java+opencv实现人脸识别功能
2023-02-20 21:52:58
Java String、StringBuffer与StringBuilder的区别
2022-08-29 23:29:55
java.lang.OutOfMemoryError 错误整理及解决办法
2021-09-23 04:09:51
Java结构性设计模式中的装饰器模式介绍使用
2022-04-08 06:30:00
Android PopUpWindow使用详解
2023-06-30 06:33:11