【发布时间】:2014-12-17 19:38:33
【问题描述】:
我想知道是否有可能在 web 应用启动时重新创建一个已经在 java 配置中创建的 bean。
我想做的是重新配置 bean 设置。
例如,我使用数据库路径创建新 bean:
@Bean
public TestBean getTestBean() {
TestBean tb = new TestBean("some_path_taken_from_external_point");
return tb;
}
在运行时我想更改路径。让我们假设这个 bean 没有数据库路径的 setter 方法。 我将有某种事件和该事件的侦听器。侦听器应使用新路径重新初始化 TestBean。
这可能吗?
我在想某种包装器。在这种情况下,我将拥有 TestBeanWrapper 类,该类将具有 get() 方法,该方法将返回 TestBean 实例和 recreate(String path),它将创建具有给定路径的新对象。
我不确定这样的包装器是否适合我,因为 TestBean 是来自外部库的一个类,我不确定它是否没有注入到某个地方(但可能没有注入)。
更可能的是其他 bean 可能依赖于 TestBean,因此它们也必须重新初始化(以防它们没有我的 TestBean 的设置器)。
这在 Spring (4.1) 中是否可行?对于这种情况,最好的方法是什么?
【问题讨论】:
标签: java spring initialization javabeans