servletcontainerinitializer 是servlet3.0以上版本才有的;
可以用来插拔式注册组件:
原理:
Tomcat容器的ServletContainerInitializer机制的实现,主要交由Context容器和ContextConfig监听器共同实现,ContextConfig监听器负责在容器启动时读取每个web应用的WEB-INF/lib目录下包含的jar包的META-INF/services/javax.servlet.ServletContainerInitializer(依赖的jar包),以及web根目录下的META-INF/services/javax.servlet.ServletContainerInitializer(自己项目的),通过反射完成这些ServletContainerInitializer的实例化,然后再设置到Context容器中,最后Context容器启动时就会分别调用每个ServletContainerInitializer的onStartup方法;
demo:
1,自己项目的话开发中位置不变.且名字不能改.如下红框:
然后该文件里的值为.实现ServletContainerInitializer的类的全路径
本例值为:
com.chi.MyservletContainerInitilizer
该类中的结构如下
@HandlesTypes({MyWebApplicationInit.class})
public cl