问题:Tomcat在idea中启动的时候会出现启动两次的情况,但部署在tomcat上又只执行一次。
Spring
@Order(3)
@Service
public class applicationListener extends TimesApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent ev) {
//判断容器是否加载
if (ev.getApplicationContext().getParent() != null) {
}
}
}
public class applicationListener extends TimesApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent ev) {
//判断容器是否加载
if (ev.getApplicationContext().getParent() != null) {
}
}
}
1,需要过滤,判断父容器是否加载成功。
2,如果已经过滤,但还是执行两次:
1)项目配置在webapp下:
配置,host节点配置了appBase为webapps,tomcat会加载webapps里的所有项目,下面又配置了webapps里的项目,导致项目又加载一次,所以会导致项目重复加载,定时程序会在几秒之内重复执行
<Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
2)项目配置为我这样()
就直接配置tomcat,就会出现运行两次的情况,这时就需要删除红框内的ROOT让直接执行自己的项目就可以。