在生产代码中使用Spring Assert.notnull

时间:2013-03-21 11:24:52

标签: java spring assert autowired

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

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

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

在我去“整理”代码之前,我想我会问我是否错过了什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

我认为这是你缺少的一点:)