Spring 弹簧&x27;s自动连线和初始化Bean

Spring 弹簧&x27;s自动连线和初始化Bean,spring,autowired,Spring,Autowired,目前,我在所有Spring组件/配置/服务类上都采用了以下“模式”: @Component final class SomeComponent implements InitializingBean { private SomeBean someBean; @Autowired public SomeComponent(SomeBean someBean) { this.someBean = someBean; } @Override public void

目前,我在所有Spring组件/配置/服务类上都采用了以下“模式”:

@Component
final class SomeComponent implements InitializingBean {
  private SomeBean someBean;

  @Autowired
  public SomeComponent(SomeBean someBean) {
    this.someBean = someBean;
  }

  @Override
  public void afterPropertiesSet() throws Exception {
    Assert.state(someBean != null, "SomeBean should not be null.");
  }

  public void someMethod() {
    someBean.doSomething();
  }
}

我真的应该实现这样的事情吗?或者如果我只是通过做无意义的断言来增加初始化时间?Spring是否保证注入bean的无效性?

文档中说:

默认情况下,只要没有可用的候选bean,自动连接就会失败;默认行为是将带注释的方法、构造函数和字段视为指示所需的依赖项

所以是的,你在做毫无意义的断言。顺便说一句,您可以直接在构造函数中执行这些断言,或者至少在@PostConstruct注释的方法中执行这些断言,而不必重写InitializingBean