通过 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 是:

  1. Reporting.java
  2. IPersistenceService.java
  3. PersistenceService.java(实现 IPersistenceService)并具有 @service 注释
  4. ReportingDAO.java:有方法 updateData()。 (新增)

    在 Reporting.java 中有一个 main(String []args) 方法,我必须从那里调用 Reporting.java.

  5. 的 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 实例化您需要的对象。