通过 Spring 项目的 main(String []args) 方法中的 Service class 调用 DAO class 方法
Calling DAO class method through through Service class in main(String []args) method of Spring project
我有一个 Spring 项目,其中 class 是:
- 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() class 方法调用 updateData() 方法。当我得到 persistenceService 的空值时。
我不确定要在 applicationContext.xml 中添加什么。
提前致谢。
您的问题是您无法混合使用 Spring bean 工厂和对 new 的调用。在您实例化一个对象的那一刻,它就不在 Spring 的手中。
将服务添加到您的 Spring 配置或通过调用 new 实例化您需要的对象。
我有一个 Spring 项目,其中 class 是:
- 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() class 方法调用 updateData() 方法。当我得到 persistenceService 的空值时。
我不确定要在 applicationContext.xml 中添加什么。
提前致谢。
您的问题是您无法混合使用 Spring bean 工厂和对 new 的调用。在您实例化一个对象的那一刻,它就不在 Spring 的手中。
将服务添加到您的 Spring 配置或通过调用 new 实例化您需要的对象。