将 spring 上下文从 xml 重写为 java
Rewriting spring context from xml to java
我正在将我的 Spring 上下文从 XML 重写为 Java class,但是我不知道下面的这个 bean。谁能帮我?我正在使用 Spring Boot.
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="order" value="10"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property
name="properties" ref="externalConfigProperties">
</property>
</bean>
按照这些思路:
@Bean
@Autowired
public PropertyPlaceholderConfigurer properties(Properties externalProperties) {
PropertyPlaceholderConfigurer propertiesBean = new PropertyPlaceholderConfigurer();
propertiesBean.setIgnoreUnresolvablePlaceholders(true);
propertiesBean.setSystemPropertiesModeName("SYSTEM_PROPERTIES_MODE_OVERRIDE");
propertiesBean.setOrder("10");
propertiesBean.setProperties(externalProperties);
return propertiesBean;
}
试试这个:
@Configuration
public class Config {
@Autowired Properties externalConfigProperties;
@Bean
PropertyPlaceholderConfigurer configurer(){
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
configurer.setSystemPropertiesModeName("SYSTEM_PROPERTIES_MODE_OVERRIDE");
configurer.setOrder(10);
configurer.setIgnoreUnresolvablePlaceholders(true);
configurer.setProperties(externalConfigProperties);
return configurer;
}
}
对于较新版本的 Spring,建议使用 PropertySourcesPlaceholderConfigurer
而不是 PropertyPlaceholderConfigurer
。定义 BeanFactoryPostProcessor
时,应将其注册为 public static
@Bean
方法,如 the docs.
中所述
要加载您的属性,请添加指向属性文件位置的 @PropertySource
。
@Configuration
@PropertySource("path/to/your/config.properties")
public class Config {
@Bean
public static PropertySourcePlaceholderConfigurer configurer(){
PropertySourcePlaceholderConfigurer configurer = new PropertySourcePlaceholderConfigurer();
configurer.setOrder(10);
configurer.setIgnoreUnresolvablePlaceholders(true);
return configurer;
}
}
我正在将我的 Spring 上下文从 XML 重写为 Java class,但是我不知道下面的这个 bean。谁能帮我?我正在使用 Spring Boot.
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="order" value="10"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property
name="properties" ref="externalConfigProperties">
</property>
</bean>
按照这些思路:
@Bean
@Autowired
public PropertyPlaceholderConfigurer properties(Properties externalProperties) {
PropertyPlaceholderConfigurer propertiesBean = new PropertyPlaceholderConfigurer();
propertiesBean.setIgnoreUnresolvablePlaceholders(true);
propertiesBean.setSystemPropertiesModeName("SYSTEM_PROPERTIES_MODE_OVERRIDE");
propertiesBean.setOrder("10");
propertiesBean.setProperties(externalProperties);
return propertiesBean;
}
试试这个:
@Configuration
public class Config {
@Autowired Properties externalConfigProperties;
@Bean
PropertyPlaceholderConfigurer configurer(){
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
configurer.setSystemPropertiesModeName("SYSTEM_PROPERTIES_MODE_OVERRIDE");
configurer.setOrder(10);
configurer.setIgnoreUnresolvablePlaceholders(true);
configurer.setProperties(externalConfigProperties);
return configurer;
}
}
对于较新版本的 Spring,建议使用 PropertySourcesPlaceholderConfigurer
而不是 PropertyPlaceholderConfigurer
。定义 BeanFactoryPostProcessor
时,应将其注册为 public static
@Bean
方法,如 the docs.
要加载您的属性,请添加指向属性文件位置的 @PropertySource
。
@Configuration
@PropertySource("path/to/your/config.properties")
public class Config {
@Bean
public static PropertySourcePlaceholderConfigurer configurer(){
PropertySourcePlaceholderConfigurer configurer = new PropertySourcePlaceholderConfigurer();
configurer.setOrder(10);
configurer.setIgnoreUnresolvablePlaceholders(true);
return configurer;
}
}