Invalid property of bean class is not writable or an invalid setter method

a 夏天 提交于 2019-12-12 02:30:35

问题


This may looks like a duplicate of this question. But this is different. I was trying to refactor my legacy code by using method injection in spring.

I have a bean class which contains many static helper methods. My targeted method as follows:

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>

I'm getting invalid property error when I'm installing the project.


回答1:


You can't inject static field, change your variable in Context.java become like this:

private MessageSender messageSender;

//...

public MessageSender getMessageSender(){
    return messageSender;
}


来源:https://stackoverflow.com/questions/43034470/invalid-property-of-bean-class-is-not-writable-or-an-invalid-setter-method

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!