我有一个独立的应用程序,该应用程序计算一个值(属性),然后启动Spring上下文。我的问题是如何将计算后的属性添加到Spring上下文中,以便我可以像从属性文件加载的属性一样使用它(@Value("${myCalculatedProperty}")
)?
为了更好地说明:
public static void main(final String[] args) {
String myCalculatedProperty = magicFunction();
AbstractApplicationContext appContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
//How to add myCalculatedProperty to appContext (before starting the context)
appContext.getBean(Process.class).start();
}
ApplicationContext.xml:
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:*.properties" />
</bean>
<context:component-scan base-package="com.example.app"/>
这是一个 Spring 3.0 应用程序。
@Configuration
的类中添加@PropertySource("classpath:path/to/classpath/application.properties")
。如果您使用的是Java <= 7.x,则使用复数形式的@PropertiySources
。 - coderatchet