确保Spring bean设置了所有属性并调用init方法的最简洁方法是什么?
我会支持使用setter注入和XML配置的答案,因为这就是我现在正在使用的。
我试图逃避我忘记配置setter或调用init-method
的情况。
在未来的项目中,我赞成skaffman's response,但我现在选择了适合我的那个。
答案 0 :(得分:8)
这poll正是您所寻找的。 p>
结果如下:
答案 1 :(得分:6)
在setter方法上使用@Required注释。然后Spring将检查它们是否已经完成设置而无需您手动检查。
或者,使用@PostConstruct注释你的init方法,Spring会为你调用它们。
答案 2 :(得分:5)
您可以将依赖项检查属性添加到bean定义中,以确保已设置所有对象/基元/两者。
<bean id="myBean" class="com.foo.MyBean" dependency-check="objects"/>
Skaffman的回答提供了更多的控制,但确实引入了你可能/可能不想要的Spring编译时依赖。
答案 3 :(得分:2)
使用beans标记的以下属性来确保在所有bean上调用依赖项检查和init方法,但它假设您不会将您的方法称为“innit”。
<beans default-init-method="init" default-dependency-check="objects">
请参阅link