Springboot如何获取yml、properties参数
作者:观海听涛丶 发布时间:2021-09-20 17:34:43
标签:Springboot,yml,properties,参数
如何获取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
0
投稿
猜你喜欢
- Android中双击返回键退出程序1.在MyAppliction中(继承Application) //运用list来保存们每一个
- Windows10 上的JDK安装配置1、前往 JDK 官网下载对应 jdk 版本安装包:下载地址本文以 jdk-8u161-windows
- 一、简介此游戏是《2D 赛车》的”魔改版“——2.5D 双人
- 在前后端分离的项目中后端返回的格式一定要友好,不然会对前端的开发人员带来很多的工作量。那么SpringBoot如何做到统一的后端返回格式呢?
- 一般而言,在传统的VB6中父子窗体(诸如“闪屏”窗体是“父窗体”加载内容,然后启动自动关闭,启动主窗体,是子窗体)的交互中,我们只需按照这样
- 问题描述:因为领导的一个需求,需要用到使用resultMap,很久没使用了,结果就除了点意外。就记录下这个问题准备两个类:author(作者
- 前言本文主要介绍其具体的实现思路(视频仅有代码输入,并无过程介绍等),同时,在原本实现的基础上,进行了多处修改和优化,具体参见下面的内容。优
- 话不多说直接上代码,简单明了import java.io.File;import java.io.FileInputStream;impor
- 我就废话不多说了,大家还是直接看代码吧!public static String mapToTxt(Map<String,String
- 给图片添加阴影效果,这是很常见的需求。第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下:show_view
- 引言这里实现一个简单的图片上传功能,主要是熟悉这个文件上传的交互流程。关于更复杂的文件上传,如大文件的切片上传、断点续传等,这里不做过多介绍
- 这篇文章主要介绍了JavaWeb如何实现禁用浏览器缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- # 前言之前在学习C语言的时候,做过一个三子棋的小游戏,最近开始学习Java,就想着能不能用Java再把之前的练习重新实现一边,既然有这个想
- 实现一个顺序表接口实现定义一个MyArrayList类,在类中实现以下函数public class MyArrayList {}数组的定义p
- java中synchronized(同步代码块和同步方法)详解及区别问题的由来:看到这样一个面试题://下列两个方法有什么区别p
- Java环境部署下载所需软件和依赖安装 jdk路径可选别的盘。但是指向时得注意我自己时装在 F 盘的,在f盘里新建文件夹 Java,Java
- 主要技术实现:spring、 springmvc、 redis、 springboot、 mybatis 、sessi
- 认识链表结构单向链表单链表在内存中的表示:可以看到,一个链表的节点包含数据域和指向下一个节点的引用,链表最后一个节点指向null(空区域)。
- 前言本文介绍了Object类以及Object类部分方法,toString方法,equals和hashCode方法(重写前和重写后的对比),g
- Jetty是一个轻量级的高度可扩展的基于 java的web服务器和servlet引擎。下面是 使用 Intellij IDEA 的maven