我有一个场景,我需要将属性从数据库或java对象加载到bean中。
考虑这个例子:
<bean id="ConfigAsstDemoBeanParent" class="gps.springconfig.DemoClass" lazy-init="true">
<property name="demoValueFromBean" value="demoValue"></property>
<property name="demoValueForKeyFromProperties" value="${DEMO_KEY}"></property>
</bean>
而不是${DEMO_KEY}
属性占位符,它从属性文件加载一个值,我需要从数据库加载一个值,我使用 Java 类的存储过程检索该值。
请建议我一种可以用于上述场景的机制。目前我正在研究扩展 SpringMain 和/或 PropertyPlaceholderConfigurer 类并编写我自己的自定义 BootStrapper。
另请建议有关为上述场景编写 BootStrapper 的提示。
Java 配置似乎是一个很好的选择的情况之一:
@Configuration
public class Config {
@Resource
private DataSource dataSource;
@Bean
@Lazy
public DemoClass configAsstDemoBeanParent() {
DemoClass demo = new DemoClass();
demo.setDemoValueFromBean("demoValue");
demo.demoValueForKeyFromProperties( /* query the database here */);
return demo;
}
}
请注意,您可以注入DataSource
(or JdbcTemplate
)到你的@Configuration
类,前提是它是在其他地方定义的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)