Spring EmbeddedValueResolverAware 接口获取properties文件属性
2016-10-10 09:22
731 查看
EmbeddedValueResolverAware 作用
通过 EmbeddedValueResolverAware 接口可以获取Spring容器加载的 properties文件属性值。
示例代码:
测试代码:
通过 EmbeddedValueResolverAware 接口可以获取Spring容器加载的 properties文件属性值。
示例代码:
import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.EmbeddedValueResolverAware; import org.springframework.stereotype.Component; import org.springframework.util.StringValueResolver; /** * Created by wangyingjie1 on 2016/9/6. */ @Component("propertiesUtils") public class PropertiesUtils implements EmbeddedValueResolverAware, BeanPostProcessor { private StringValueResolver resolver = null; @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.resolver = resolver; } public String getPropertiesValue(String name) { return resolver.resolveStringValue(name); } @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"); return bean; } }
测试代码:
import com.google.common.collect.Maps; import com.jd.caiyu.common.utils.PropertiesUtils; import com.jd.caiyu.match.domain.agent.enums.AgentTypeEnum; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.Map; import static com.jd.caiyu.match.domain.agent.enums.AgentTypeEnum.PRIMARY; /** * Created by wangyingjie1 on 2016/9/6. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/spring-config.xml") public class PropertiesUtilsTest { @Autowired private PropertiesUtils propertiesUtils; @Test public void testGetValue(){ String value = propertiesUtils.getPropertiesValue("${jmq.address}"); Assert.assertEquals("查询结果与期待的不一致!!!", "192.168.x.x:p", value); Map<AgentTypeEnum, String> map = Maps.newHashMap(); map.put(PRIMARY, "xxx"); } }
相关文章推荐
- 关于spring使用@value注解获取properties文件属性问题
- spring 通过@Value 获取properties文件中设置了属性 ,与@Value # 和$的区别
- Spring获取properties文件中的属性
- spring利用注解@Value获取properties属性为null
- 2.通过原始的Driver接口通过读取Properties属性文件获取JDBC数据库连接Connection
- Java中如何获取spring中配置的properties属性文件内容
- Java中如何获取spring中配置的properties属性文件内容
- Java,spring程序中实时获取.properties属性key的value
- ApplicationContextAware获取Spring上下文,通过基类获取properties中的配置属性
- 2.通过原始的Driver接口通过读取Properties属性文件获取JDBC数据库连接Connection
- Spring之@Value 注解获取properties值(Spring 3的@value简化配置文件的读取)
- 使用EmbeddedValueResolverAware读取配置文件内容
- Java中如何获取spring中配置的properties属性文件内容
- Java中如何获取spring中配置的properties属性文件内容
- Spring在代码中获取properties文件属性
- Spring @Value 无法获取到properties文件中的值
- 通过ApplicationContextAware接口获取Spring配置文件中的所有Bean
- spring 之 PropertiesLoaderUtils 获取文件属性用法
- Spring3.x 获取properties资源文件的值
- java spring中对properties属性文件加密及其解密