1

ここで、理解できない非常に具体的な 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 であるため、プロパティが正しく設定されていないことを意味します。どうして!?

どのように修正すればよいでしょうか。

ありがとう。

4

2 に答える 2

0

私はSpringについてあまり知らないので、注釈などについて話すことはできませんが、元のプロパティはprivateであるため、オーバーライドすることはできません。両方を に変更してみてくださいprotected

于 2013-10-20T22:01:23.657 に答える