我是Spring的新手。我在spring-config.xml中有以下工作:

<bean id="statusEmailSender" class="my.package.email.StatusEmailSenderImpl">
    <property name="mailSender" ref="mailSender"/>
    <property name="templateMessage" ref="templateMessage"/>
</bean>




在一些已经定义的类中,我看到这样的东西:

@Autowired
private StatusEmailSender statusEmailSender;


而且有效。当我在自己的类中执行此操作时,将收到NullPointerException。
我知道原因:我正在使用new()创建我的课程:

return new EmailAction(config,logger);


我的课看起来像这样:

public class EmailAction{
@Autowired
StatusEmailSender statusEmailSender;
public EmailAction(...)
{
...
}
}


你知道我该如何解决吗?这是遗留代码,解决新的EmailAction()调用非常困难。

最佳答案

为什么不在需要时不自动为其联结EmailAction类?

EmailAction.java:

@Component
public class EmailAction{
 // ...
}


WhereYouNeedIt.java:

public class WhereYouNeedIt{

@Autowired
EmailAction emailAction;


 // access emailAction here

}

10-08 01:11