【发布时间】:2017-03-26 20:57:30
【问题描述】:
这可能看起来像 this question 的副本。但这是不同的。 我试图通过在 spring 中使用方法注入来重构我的遗留代码。
我有一个包含许多静态辅助方法的 bean 类。我的针对性方法如下:
Context.java
private static MessageSender messageSender;
//...
public static MessageSender getMessageSender(){
return messageSender;
}
上下文 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>
我在安装项目时遇到无效属性错误。
【问题讨论】:
-
messageSender 不是属性。这是一个静态字段。你不能注入静态字段。
标签: java spring methods inject