我有一个Spring项目,有以下类:
- Reporting.java
- IPersistenceService.java
- PersistenceService.java(实现IPersistenceService),并有@service注释
-
ReportingDAO.java:有updateData()方法。(新添加)
在Reporting.java中有一个main(String []args)方法,从那里我必须调用Reporting.java的updateData()
Reporting.java:
@autowired
IPersistenceService persistenceService;
public static void main(String []args)
{
ApplicationContext context = new ClassPathXMLApplicationContext(applicationContext.xml) // context has values populated in it.
persistenceService.updateData(); // I am getting persistenceService as null here.
}
IPersistenceService.java
public void updateData();
@service
PersistenceService.java (implements IPersistenceService)
public void updateData()
{
ReportingDAO reportingDao = new ReportingDAO ();
reportingDao.updateData();
}
问题是我不能从我的main()类方法调用updateData()方法。因为我得到了空的persistenceService。
我不确定在applicationContext.xml中添加什么。
您的问题是您不能混合使用Spring bean工厂和调用new。在实例化对象的那一刻,它就脱离了Spring的控制。
要么将服务添加到Spring配置中,要么通过调用new实例化所需的对象。