在使用标签@service注入service时无法注入成功。最后使用的这种方式实现的注入
第一部分:
package com.bootstrap;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.neusoft.taflus.util.SpringContextUtil;
public class SysInitListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
SpringContextUtil.setContext(WebApplicationContextUtils.getRequiredWebApplicationContext(arg0.getServletContext()));
}
}
第二部分:
package com.util;
import org.springframework.web.context.WebApplicationContext;
public class SpringContextUtil {
private static WebApplicationContext context;
private SpringContextUtil(){
}
public static WebApplicationContext getContext(){
return context;
}
public static void setContext(WebApplicationContext context){
SpringContextUtil.context = context;
}
}
第三部分:web.xml配置
<web-app>
<listener>
<listener-class>com.neusoft.taflus.bootstrap.SysInitListener</listener-class>
</listener>
</web-app>
第四部分:使用
package com.gather;
public class GatherJob implements Job {
HostFilter hostController;
public GatherHostJob(){
super();
this.hostController = SpringContextUtil.getContext().getBean(HostFilter.class);
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
hostController.alarmFilter(moObj, hostBean);
}
}