摒弃web.XML
创建Servlet3.0及以上的动态web工程时,可以完全抛弃对web.xml的依赖,仅仅使用注解等方式?
创建一个Servlet且不使用xml达到快速配置:
共享库和运行时插件能力
Shared libraries / runtimes pluggability
翻译:容器或应用在启动时,会调用jar包中的services API去获得Servlet容器的初始化器。
我的翻译:框架所提供的这个Servlet容器初始化器实现,必须绑定(不是包含)在 META-INF/services文件夹下叫做javax.servlet.ServletContainerInitializer的jar文件中,jar包中的services API会指向这个文件中的实现类。
操作:
实践:
输出:
使用ServletContext注册web应用的三大组件
三大组件:Servlet、Filter、Listener
注册Servlet
注册Listener
注册过滤器
转发方式
用@HandlesTypes监听感兴趣的类型
所有HelloService接口的相关类型都会被监听到:
子接口:HelloServiceExt
抽象类:AbstractHelloService
实现类:HelloServiceImp
其它位置添加组件
除了在ServletContainerInitializer添加组件外,还可以在ServletContextListener的contextInitialized方法中添加,项目正式运行无法再动态添加。