确保Spring Bean已正确初始化

Rob*_*anu 9 spring

确保Spring bean设置了所有属性并调用init方法的最简洁方法是什么?

我会赞成使用setter注入和XML配置的答案,因为这就是我现在正在使用的.


我试图逃避我忘记配置一个setter或调用的情况init-method.


在未来的项目中,我赞成skaffman的回应,但我现在选择了适合我的那个.

kgi*_*kis 8

民意调查正是您所寻找的.

结果如下:

  • 通过使用XML中的dependency-check属性:11.52%
  • 使用@Required注释(或自定义注释):21.40%
  • 通过使用InitializingBean和断言工具:23.87%
  • 通过使用init-method和断言功能:14.40%
  • 我不必,因为我使用构造函数注入所需的属性:19.34%
  • 我在我的业务方法中检查我的依赖项:7.41%
  • 我没有检查所需的依赖项:34.16%


ska*_*man 6

在setter方法上使用@Required注释.然后,Spring将检查它们是否已全部设置,无需您手动检查.

或者,使用@PostConstruct注释您的init方法,Spring将为您调用它们.


Ada*_*ski 5

您可以将dependency-check属性添加到bean定义中,以确保已设置所有对象/基元/两者.

<bean id="myBean" class="com.foo.MyBean" dependency-check="objects"/>
Run Code Online (Sandbox Code Playgroud)

Skaffman的答案提供了更多控制,但确实引入了一个您可能/可能不想要的Spring编译时依赖.


Pau*_*zie 2

使用 beans 标记的以下属性来确保依赖性检查并在所有 bean 上调用 init 方法,但它假设您不调用方法“innit”。

<beans default-init-method="init" default-dependency-check="objects">
Run Code Online (Sandbox Code Playgroud)

链接