4

我继承了一个使用 Spring Autowiring 的应用程序,并且每个自动装配的构造函数都充满了 Assert.notNull() 以在继续之前检查每个参数。

我看不出构造函数自动装配如何让这些参数为空,因此这些断言似乎是多余的,并使代码看起来很混乱。

我很欣赏它对于手动注入 args 的单元测试可能很有用,但我认为测试中的 NPE 足以表明测试未正确初始化。

在我去“整理”代码之前,我想我只想问我是否遗漏了什么?

4

1 回答 1

1

我认为这只是额外的预防 - 自动装配是容器的一项功能,与您的代码分开,可以随时禁用。通过这种方式,您可以显式定义构造函数的合同。

假设有人禁用了该特定类的自动装配并将其替换为:

  <bean id="myBean" class="com.my.company.BeanImpl">
    <constructor-arg name="someService">
        <null />
    </constructor-arg>
  </bean>

我认为这是您缺少的重点:)

于 2013-03-21T13:07:25.687 回答