我想知道是否有可能重新创建一个已经在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实例并重新创建(String path),它将创建具有给定路径的新对象。
我不确定这样的包装器是否适用于我,因为TestBean是一个来自外部库的类,我不确定它是不是注入某个地方(但可能没有注入)。
更可能的是,其他bean可能依赖于TestBean,因此它们也必须重新初始化(如果它们没有我的TestBean的setter)。
这在Spring(4.1)中是否可行?这种情况的最佳方法是什么?
答案 0 :(得分:0)
所以我仍然不确定你为什么要改变路径,但我有2条建议:
<强> 1。看看在Bean上设置范围。 通过在bean上设置范围,您可以根据上下文重新生成bean。请查看Bean Scopes以获取更多信息。
<强> 2。看看可能使用控制器或服务。 控制器和服务允许可以为您提供更多控制的getter和setter。