我正在開發一個Web應用程序,我是Spring Hibernate的新手。在那裏我有一個ServletContextListener來定期運行一個方法。在那個類中,我在ReceiptDao類中調用了一個方法。向ServletContextListener注入依賴關係
下面的ServletContextListener類
public class MailReminder implements ServletContextListener {
public void contextInitialized(ServletContextEvent arg0) {
ServletContext servletContext = arg0.getServletContext();
System.out.println("ServletContextListener started");
int delay = 1000;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask(){
public void run(){
ReceiptDao receiptDao=new ReceiptDao();
receiptDao.listReceipts();
}
},delay, 1000*60);
}
public void contextDestroyed(ServletContextEvent arg0) {
ServletContext servletContext = arg0.getServletContext();
Timer timer = (Timer)servletContext.getAttribute ("timer");
if (timer != null)
timer.cancel();
servletContext.removeAttribute ("timer");
System.out.println("ServletContextListener destroyed");
}
}
下面是ReceiptDao方法
@Autowired
private SessionFactory sessionFactory;
@SuppressWarnings("unchecked")
public List<Receipt> listReceipts() {
Session session = sessionFactory.openSession(); //line 150
Criteria crit= session.createCriteria(Receipt.class);
crit.add(Restrictions.eq("ReceiptId",2));
List<Receipt> receiptlist= crit.list();
session.close();
return receiptlist;
}
它給出了管線150一個NullPointerException我知道這是因爲我通過彈簧非託管調用此方法類。但我不知道如何將我的Spring託管ReceiptDao注入到我的ServletContextListener中。
請問您可以告訴我如何注入它。請在我的web.xml和spring-config-file.xml中提及我必須做的更改。
在春季安排豆子?將只是3行XML ... –
哦,是的,這很容易。我安排了一個春天的豆子,做了我想要的東西。謝謝。 – Neha