Spring beans - 验证是否正确初始化

时间:2018-03-21 03:23:22

标签: java spring spring-mvc

我在我的Java项目中使用Spring框架。当我启动模块时,有时spring bean没有被正确初始化,bean将为null,程序将有异常(Null Pointer Exception)。有没有办法确保在启动期间所有bean都已正确初始化?

2 个答案:

答案 0 :(得分:1)

春天有一个@Required注释。这将确保在初始化bean之前存在依赖关系。如果依赖项不存在,它将在初始化bean之前抛出错误。在您的代码中使用它,然后重试。如果您仍然遇到问题,请在此处发布您的代码。

答案 1 :(得分:1)

  

既然你可以混合基于构造函数和基于setter的DI,那就很好了   经验法则使用构造函数来强制依赖和   setter方法或可选依赖项的配置方法。   请注意,在setter方法上使用@Required注释可以   用于使属性成为必需的依赖项。

     

Spring团队一般都主张构造函数注入   使一个人能够将应用程序组件实现为不可变对象   并确保所需的依赖项不为null。此外   构造函数注入的组件总是返回给客户端   (调用)处于完全初始化状态的代码。作为旁注,大   构造函数参数的数量是一个糟糕的代码气味,暗示着   班级可能有太多的责任,应该重构   更好地解决问题的正确分离。

这样,如果你的bean是不可变对象,那么只需使用基于构造函数的DI。如果它们不是不可变的,那么你可以组合基于构造函数和基于setter的DI,或者使用@Required注释。