ここで、理解できない非常に具体的な Java Spring の問題を取り上げます。抽象クラス fe を作成しました。
public abstract class AbstractCrudServiceImpl{
private GenericDAO baseDao;
public GenericDAO getBaseDao() {
return baseDao;
}
}
Generic Dao はインターフェイスです。抽象クラスにゲッター (およびセッター) を入れたかったので、実装はかなり単純で明確です。[atmでなくても構いません]。
次に、たとえば次のように実装します。
public class AgentServiceImpl extends AbstractCrudServiceImpl{
@Autowired
private AgentDao baseDao;
}
スーパークラスの getter を使用してすべてのメソッドを実行します。
私の意図は、次のような XML を使用する場合と同様の効果を持つことでした。
<bean id="AbstractCrudServiceImpl" class="..." abstract="true" />
<bean id="AgentServiceImpl" parent="AbstractCrudServiceImpl">
<property name="baseDao" ref="agentDao"/>
</bean>
そして驚いたことに、次のようなエラーが表示されました。
java.lang.NullPointerException
com.insurance.central.services.impl.AbstractCrudServiceImpl.read(AbstractCrudServiceImpl.java:36)
これは基本的に、値がまだ null であるため、プロパティが正しく設定されていないことを意味します。どうして!?
どのように修正すればよいでしょうか。
ありがとう。