这个是今天偶然发现的,我开始执行了一个
public static void main(String[] args) {
ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
Instal instal = (Instal) act.getBean("instal");
instal.doThis();
}
然后输入网址执行action,发现action不创建了,后来发现如果不执行上面那个函数就一切正常,后来我发现 ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");语句造成的,他创建了一个新的spring容器,而action放在的是另一个spring容器里,所以action就不创建了。
用这个
ServletContext application = arg0.getServletContext();
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(application);
PrivilegeService privilegeService = (PrivilegeService) webApplicationContext.getBean("privilegeServiceImpl");
可以不创建新spring容器,用原来的,但是我还没找到可以直接执行.java(run as java 不用tomcat)的类能用原spring容器的