4

Spring Autowiring を使用するアプリケーションを継承し、各 autowired コンストラクターには Assert.notNull() が散らばっており、続行する前に各引数をチェックしています。

コンストラクターの自動配線がこれらの引数を null にする方法がわからないため、これらのアサーションが冗長に見え、コードが乱雑に見えます。

引数が手動で挿入される単体テストに役立つ可能性があることは理解していますが、テストの 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 に答える