bean类的无效属性不可写或无效的setter方法

时间:2017-03-26 20:57:31

标签: java spring methods inject

这可能看起来像this question的副本。但这是不同的。 我试图通过在春天使用方法注入来重构我的遗留代码。

我有一个包含许多静态辅助方法的bean类。我的目标方法如下:

Context.java

private static MessageSender messageSender;

//...

public static MessageSender getMessageSender(){
    return messageSender;
}

Context bean

<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

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

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

我在安装项目时遇到无效的属性错误。

1 个答案:

答案 0 :(得分:0)

你不能注入静态字段,在Context.java中更改你的变量就像这样:

private MessageSender messageSender;

//...

public MessageSender getMessageSender(){
    return messageSender;
}