ある日、NPE が原因でアプリケーションがクラッシュし始めるというインシデントに直面しました。クラッシュしている場所を見つけましたが、なぜクラッシュしたのかわかりません。
大まかに言えば、春の豆と同時に現れるクラスAがあると仮定しましょう。このクラスには、明示的にインスタンス化されるフィールドプロパティ(はい、どのように聞こえるかは知っています) と、このフィールドを使用するメソッドpropertyUserがあります。
class A {
private ObjectClass property = new ObjectClass();
public void propertyUser() {
property.action();
}
....
getter\setter for property
}
そして、通常の作業をしばらく行った後、プロパティ フィールドが null になり、propertyUserメソッドから NPE が発生しました。このレガシー コードを変更した結果、このプロパティはいずれかのスプリング コンテナーを介して割り当てられるようになりましたが、これがこのエラーの原因であったことを確認する必要があります。
ですので、どなたかヒントを頂ければ幸いです。