2017-03-26 3 views
0

this questionの重複のように見える場合があります。しかし、これは異なっています。 私は春にメソッドインジェクションを使用してレガシーコードをリファクタリングしようとしていました。Beanクラスの無効なプロパティが書き込み可能でないか、無効なセッターメソッド

私は多くの静的ヘルパーメソッドを含むBeanクラスを持っています。私の目標と方法は、以下のように:

Context.java


private static MessageSender messageSender; 

//... 

public static MessageSender getMessageSender(){ 
    return messageSender; 
} 

コンテキスト豆


<bean id="context" class="org.abc.Context"> 

    <property name="messageSender"><ref bean="mailMessageSender"/></property> 
</bean> 

MailMessageSender.java


public abstract class MailMessageSender{ 

    protected abstract Session createSession(); 

    //using createSession() somewhere in this class 
} 

MailMessageSender豆


<bean id="session" class="javax.mail.Session" scope="prototype" /> 

<bean id="mailMessageSender" class="org.abc.MailMessageSender"> 
    <lookup-method name="createSession" bean="session"/> 
</bean> 

私はプロジェクトをインストールしていたとき、私は無効なプロパティのエラーを取得しています。

+2

するmessageSenderはプロパティではありません。これは静的なフィールドです。静的フィールドを挿入することはできません。 –

答えて

0

あなたは、静的フィールドを挿入Context.javaであなたの変数を変更するには、このようになることはできません。

private MessageSender messageSender; 

//... 

public MessageSender getMessageSender(){ 
    return messageSender; 
} 
+0

**静的**動作を削除するために 'getMessageSender()'を実行することはできません。 –

関連する問題