我是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
}