我继承了一个使用Spring Autowiring的应用程序,每个自动装配的构造函数都充满了Assert.notNull(),以便在进行处理之前检查每个参数。
我无法看到构造函数自动装配如何让这些参数为空,因此这些断言似乎是多余的,并使代码看起来很混乱。
我很欣赏它可能对手动注入args的单元测试很有用,但我认为测试中的NPE足以表明测试没有正确初始化。
在我去“整理”代码之前,我想我会问我是否错过了什么?
答案 0 :(得分:1)
我认为这只是额外的预防 - 自动装配是容器的一项功能,与代码分开,可以随时禁用。通过这种方式,您可以明确定义构造函数的契约。
假设有人禁用该特定类的自动装配,并将其替换为:
<bean id="myBean" class="com.my.company.BeanImpl">
<constructor-arg name="someService">
<null />
</constructor-arg>
</bean>
我认为这是你缺少的一点:)