PropertySourcesPlaceholderConfigurer总是提取系统属性

时间:2015-07-16 16:29:30

标签: java spring annotations

我对PropertySourcesPlaceholderConfigurer有疑问。目前,我正在将一些配置从xml迁移到java配置。我通过xml文档中的PropertyPlaceholderConfigurer配置加载了属性文件。我遇到的问题是,现在,当我使用PropertySourcePlaceholderConfigurer创建java配置类时,有一个属性从系统和环境属性加载,而不是尝试从我拥有的属性文件加载。使用PropertyPlaceHolderConfigurer bean可以使用

<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>

这样,选择的属性就是系统中的属性。但我在PropertySourcesPlaceHolderConfigurer中找不到与此相似的任何内容。实际上,在这种情况下,它正在做相反的事情。不配置任何东西总是喜欢系统中的任何东西。 我使用属性的方式是通过@Value注释,始终失败的属性是java.naming.factory.initial,用于jms连接工厂

这是我的java配置

 @Configuration
 @PropertySources(@PropertySource("classpath:config.properties"))
 public class JndiConfig {

     @Value("${java.naming.factory.initial}")
     private String factoryInitial;

     @Bean
     public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
         return new PropertySourcesPlaceholderConfigurer();
     }
}

这是config.properties

java.naming.factory.initial=fiorano.jms.runtime.naming.FioranoInitialContextFactory

我得到的日志就是这些。这里选择了注入的属性fiorano.jms.runtime.naming.FioranoInitialContextFactory

  

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[environmentProperties]中搜索关键'java.naming.factory.initial'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[servletConfigInitParams]中搜索关键'java.naming.factory.initial'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[servletContextInitParams]中搜索关键'java.naming.factory.initial'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[jndiProperties]中搜索关键'java.naming.factory.initial'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.jndi.JndiTemplate) - 查找名为[java:comp / env / java.naming.factory.initial]的JNDI对象

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.jndi.JndiLocatorDelegate) - 找不到转换的JNDI名称[java:comp / env / java.naming.factory.initial] - 尝试原始名称[java .naming.factory.initial。 javax.naming.NameNotFoundException:名称[java.naming.factory.initial]未绑定在此Context中。无法找到[java.naming.factory.initial]。

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.jndi.JndiTemplate) - 查找名为[java.naming.factory.initial]的JNDI对象

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.jndi.JndiPropertySource) - 名称[java.naming.factory.initial]的JNDI查找使用消息抛出NamingException:Name [java.naming.factory。 initial]不受此Context的约束。无法找到[java.naming.factory.initial] ..返回null。

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[systemProperties]中搜索关键'java.naming.factory.initial'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[systemProperties]中找到类型为[String]且值为'org的键'java.naming.factory.initial' .apache.naming.java.javaURLContextFactory'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.core.env.PropertySourcesPropertyResolver) - 在[environmentProperties]中找到类型为[String]和值'org'的键'java.naming.factory.initial' .apache.naming.java.javaURLContextFactory'

     

DEBUG 2015-07-16 15:25:33,269(org.springframework.beans.factory.annotation.InjectionMetadata) - 处理bean'jndiConfig'的注入元素:私有java.lang.String com.iggroup.wt的AutowiredFieldElement .majormarketmovement.config.JndiConfig.providerUrl

有什么想法吗?

感谢。

0 个答案:

没有答案