Spring中Environment的使用
在Spring中当我们想拿到配置文件(不管是yml格式还是.properties格式)中的配置信息时,有很多种方式,采用Environment去获取是其中一种,优势是:
- 可以通过getProperty这种比较通用的api来根据key获取value。
- 当存在多份配置文件(比如SpringBoot应用jar包中有application.yml文件,外部也有application.yml文件),能取到生效的配置文件信息。
一、使用示例如下(前提是在spring的应用中):
package com.springDemodemo;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;@SpringBootTest
public class EnvironmentTest {@AutowiredEnvironment environment;@Testpublic void getProperty() {System.out.println(environment.getProperty("hello"));}}
配置文件信息如下:
hello=world
打印结果如下:
world
二、封装为工具类
package com.springDemodemo.utils;import org.springframework.core.env.Environment;public class EnvironmentUtil {public static Environment environment = SpringUtils.getBean(Environment.class);public static String getProperty(String key) {return environment.getProperty(key);}
}
用到的SpringUtils类如下:
package com.springDemodemo.utils;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.stereotype.Component;@Component
public final class SpringUtils implements BeanFactoryPostProcessor {/*** Spring应用上下文环境*/private static ConfigurableListableBeanFactory beanFactory;@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {SpringUtils.beanFactory = beanFactory;}/*** 获取类型为requiredType的对象** @param clz* @return* @throws BeansException*/public static <T> T getBean(Class<T> clz) throws BeansException {T result = (T) beanFactory.getBean(clz);return result;}}
Spring中Environment的使用相关推荐
- Spring中Environment详解,一文搞透Spring运行环境Environment
文章目录 一.理解 Spring Environment 抽象 1.源码初识 二.Environment 占位符处理 1.Spring 3.1 前占位符处理 2.Spring 3.1 + 占位符处理 ...
- spring中environment设计与实现
1.environment类层次
- Spring 中的 context
Spring 中的 context BeanFactory 首先看下,官方在代码中给出的注释: The root interface for accessing a Spring bean conta ...
- spring之Environment
Spring 的Environment包含两方便的抽象,profile和 property 前者是一组bean的定义,只有相应的profile被激活的情况下才会起作用. 后者是提供方便的抽象,应用程序 ...
- Spring 中 Bean 的生命周期
本文作者: 伯乐在线 - yemengying 智商捉鸡?,实在没办法一下子理解Spring IoC和AOP的实现原理,看的闹心也不太懂,所以...决定拆成小的不能在小的一个个问题,一点点啃.今天先来 ...
- 原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
这是Hollis的第 216 篇原创分享 作者 l cxuan 来源 l Hollis(ID:hollischuang) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configura ...
- Spring中调用远程EJB的配置
http://smarttao.bokee.com/3961393.html 对于一些遗留项目,实现EJB的远程调用是很有必要的,这里就简单介绍一下Spring中的配置和调用方式,从中可以感受到Spr ...
- 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
作者 l cxuan 来源 l Hollis(ID:hollischuang) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一行简单的注解就 ...
- spring中context:property-placeholder标签详解
spring中context:property-placeholder标签的使用说明 1,有些参数在某些阶段中是常量. 在开发阶段我们连接数据库时的url,username,password等信息 分 ...
- 四、Spring中使用@Conditional按照条件注册Bean
以前其实是写过@Condtional注解的笔记的,这里附上链接: Spring中的@conditional注解 但已经忘记的差不多了,所以今天再重新学习下,可以互补着学习 @Contional:按照一 ...
最新文章
- 1-3_基本概念_程序进程
- bzoj 1045 [HAOI2008] 糖果传递 —— 贪心
- Polya原理的应用经典实例
- cocos2d-x win8下的环境配置和建立项目
- [?]Oracle 10g sqlplus 的Bug?
- postgresql数据库连接池pgbouncer的搭建
- 【跃迁之路】【500天】程序员高效学习方法论探索系列(实验阶段257-2018.06.20)...
- 算法分析设计--递归算法
- 几个WMS的问题处理
- Spring框架学习笔记10:基于XML配置方式SSM框架西蒙购物网
- oracle如何判断奇数偶数_图解面试题:如何分析中位数?
- Essential C++中文版——满汉全席之外
- Linux_数据段、代码段、堆栈段、BSS段的区别
- 知识图谱-命名实体-关系-免费标注工具-快速打标签-Python3
- 软件工程pert图_《软件工程》软件项目管理实验
- 与关系型数据库相比,MongoDB的优缺点
- windows系统笔记本连接外部显示器进行分屏
- 用计算机求a的平方根的顺序,算术平方根练习题
- 下一关口令:别犹“豫”,看“浙”里,一起“皖”
- Postgis使用工具raster2pgsql批量导入栅格数据(二)