bean 类的无效属性不可写或无效的 setter 方法 [英] Invalid property of bean class is not writable or an invalid setter method

查看:175
本文介绍了bean 类的无效属性不可写或无效的 setter 方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能看起来像这个问题的副本.但这是不同的.我试图通过在 spring 中使用方法注入来重构我的遗留代码.

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.

我有一个包含许多静态辅助方法的 bean 类.我的针对性方法如下:

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

上下文.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

MailMessageSender.java

public abstract class MailMessageSender{

   protected abstract Session createSession();

   //using createSession() somewhere in this class
}

MailMessageSender bean

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.

推荐答案

你不能注入静态字段,把你的Context.java中的变量改成这样:

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

private MessageSender messageSender;

//...

public MessageSender getMessageSender(){
    return messageSender;
}

这篇关于bean 类的无效属性不可写或无效的 setter 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆