springboot-读取应用配置
时间:2021-07-13
本文章向大家介绍springboot-读取应用配置,主要包括springboot-读取应用配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、Environment
一个通用的读取应用程序运行时的环境变量的类,可以读取application.properties,命令行输入参数,系统属性,操作系统环境变量等。可以通过Spring容器自动注入。Environment可以用在Spring应用的任何地方。
EnvConfig
package com.gcz.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; /** * @author guocz * @date 20210713 * 环境参数 */ @Configuration public class EnvConfig { @Autowired private Environment environment; public String getServerPort() { return environment.getProperty("server.port", String.class); } public String getUserDir(){ return environment.getProperty("user.dir", String.class); } public String getUserHome(){ return environment.getProperty("user.home", String.class); } public String getJavaHome(){ return environment.getProperty("JAVA_HOME", String.class); } }
controller
package com.gcz.controller; import cn.hutool.core.util.StrUtil; import com.gcz.config.EnvConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; /** * @author guocz * @date 20210713 * 读取应用配置 */ @Controller @RequestMapping("/prop") public class PropertiesController { @Autowired private EnvConfig envConfig; /** * 服务端口 */ private final static String SERVER_PORT = "server.port"; /** * 程序运行目录 */ private final static String USER_DIR = "user.dir"; /** * 用户home目录 */ private final static String USER_HOME = "user.home"; /** * 读取环境变量 */ private final static String JAVA_HOME = "JAVA_HOME"; @RequestMapping(value = "/{param}") @ResponseBody public String getProperties(@PathVariable String param){ if (StrUtil.equals(param, SERVER_PORT)) { return envConfig.getServerPort(); }else if (StrUtil.equals(param, USER_DIR)) { return envConfig.getUserDir(); }else if (StrUtil.equals(param, USER_HOME)) { return envConfig.getUserHome(); }else if (StrUtil.equals(param, JAVA_HOME)) { return envConfig.getJavaHome(); }else { return "not exist"; } } }
2、@Value
直接通过@Value注解注入一个配置信息到Spring管理的Bean中
controller
/** * 读取配置 * @param port * @return */ @RequestMapping("/getValue") @ResponseBody public String getValue(@Value("${server.port}") String port) { return port; }
or
/** * 端口号 */ @Value("${server.port}") private String value; /** * 读取配置 * @return */ @RequestMapping("/getValue1") @ResponseBody public String getValue() { return value; }
原文地址:https://www.cnblogs.com/canzhen/p/15004902.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Rook Operator 源码分析(1) - osd 启动的流程
- Python 技术篇-利用pyqt5库监听剪切板变动,clipboard.dataChanged.connect()剪切板监听
- 关于MySQL server has gone away
- PyQt5 技术篇-在clipboard.dataChanged.connect()里如何写入剪切板示例演示,pyqt5监听剪切板变动并写入剪切板内容
- 去除WordPress链接中出现的index.php
- MySQL 语法问题:You can‘t specify target table ‘xxx‘ for update in FROM clause. 原因及解决方法
- 配置 prometheus-operator 报警规则
- SQL语句查询出的数据进行字符串拼接,oracle批量删除数据库用户实例演示
- prometheus-operator 监控 k8s 外部集群
- Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法
- JavaScript 技术篇-js检测原生对象类型实例演示,js的3种对象类型
- Python 技术篇-利用pyqt5库读取剪切板已复制数据的格式类型实例演示,python判断复制文件的文件类型
- 第36期:二叉树的遍历(小白必看)
- Python 技术篇-index()字符串倒叙匹配获取索引,字符串切片反向输出,逆向输出字符串
- JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法