问题描述
问题如下:现在想使用Spring + quartz配置来实现定时任务。定时任务是在每周日24点从数据库获取数据,项目采用ssh,定时任务TimerTask,要通过DAO操作来获取数据1.如何通过getBean来获取数据库操作事务对象,我是这样做的 public WebContext ctxDwr = WebContextFactory.get();protected Object getBean(String id) {WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(ctxDwr.getServletContext());return ctx.getBean(id);} 这种方式应该可行吧。 请问有什么其他方法吗?2.定时任务中要获取项目访问url,不知道有什么方法来实现? String ipAddress = "http://" + request.getLocalAddr() + ":"+ request.getLocalPort() + request.getContextPath()+ "/"; 这个request如何取得,求解?谢谢了 问题补充:Rainbow702 写道
解决方案
try this:http://copperfield.iteye.com/admin/blogs/1164258
解决方案二:
http://copperfield.iteye.com/blog/1164258
解决方案三:
既然能取到WebContext ,用它应该也能取到吧。要不就把quartz的启动放到listenner里面。
解决方案四:
最好说明一下你为什么要获取项目访问url?或者可以换一种方式实现。 说白了就是quartz是一个定时的任务,与B/S、C/S项目结构没有关系的。
解决方案五:
第二点你可以这么来引用String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+contextPath+"/";