Dies kann wie ein Duplikat von this question aussehen. Aber das ist anders. Ich habe versucht, meinen Legacy-Code mithilfe der Methodeninjektion im Frühjahr zu refaktorieren.Ungültige Eigenschaft der Bean-Klasse ist nicht beschreibbar oder eine ungültige Setter-Methode
Ich habe eine Bean-Klasse, die viele statische Hilfsmethoden enthält. Meine gezielte Methode wie folgt:
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>
Ich erhalte Fehler ungültige Eigenschaft, wenn ich das Projekt bin installieren.
Message keine Eigenschaft ist. Es ist ein statisches Feld. Sie können keine statischen Felder injizieren. –