【发布时间】:2016-05-07 10:27:15
【问题描述】:
我正在运行一个 web 应用程序,它有一个公开的类(可用于其他 POJO 类)并且有一个自动装配的私有成员。
Spring 托管类
public class EPSQueueSender {
@Autowired
private AmqpTemplate epsMessageTemplate;
public void dosomething(...){
epsMessageTemplate.convertAndSend(...); // Here epsMessageTemplate is null if instance of EPSQueueSender taken from other POJO
}
}
POJO 类
public class Test{
EPSQueueSender sender = new EPSQueueSender();
sender.dosomething(....); // gives null exception on epsMessageTemplate
}
Spring 代码(作为 WebApp 运行)和 POJO 类代码(不同的 Jar)在同一个 JVM 上。 POJO 无法获取已初始化的自动装配对象。但是,如果我在 webApp 项目中使用它,它会被初始化。
有人可以提出一些建议,我该如何克服这个问题? 我想尝试的最后一件事是将网络服务器作为来自 POJO 的 http 请求。
【问题讨论】:
-
你期望spring如何注入mesageTemplate?您是在 xml 中定义 bean 还是依赖 spring 4?
-
在xml中定义,xml是从servlet导入的。所以这个 bean 正确地自动装配并在 spring 端代码初始化
-
你如何实例化这个调用?是春节前吗?可以分享一下你的 spring 配置吗?
标签: java spring pojo applicationcontext