标签:beanFactory Spring 使用 springframework Environment org import public
在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 { @Autowired Environment environment; @Test public 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; @Override public 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; } }
标签:beanFactory,Spring,使用,springframework,Environment,org,import,public 来源: https://www.cnblogs.com/silenceshining/p/15101296.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。