publiccms多站点下静态资源获取过程(war外部web容器启动方式)

publiccms多站点下静态资源获取过程(war外部web容器启动方式)

原理:

1.在servlet 3.0+ 中,可以以 Code-based Approach 方式动态取代 以前 web.xml方式的配置,如配置 servlet, filter, listener.

       为了支持可以不使用web.xml。提供了ServletContainerInitializer,它可以通过SPI(Serial Peripheral Interface)机制。
       SPI机制使用:
       1.当启动web容器的时候(eg:tomcat容器),会自动到添加的相应jar包下找到META-INF/services下以ServletContainerInitializer的全路径名称命名的文件;
       2.它的内容为ServletContainerInitializer实现类的全路径,并将它们实例化。
       3.既然这样的话,那么SpringServletContainerInitializer作为ServletContainerInitializer的实现类,它的jar包下也应该有相应的文件。

       如:spring-web-4.3.7.RELEASE.jar 包下的/META-INF/services/javax.servlet.ServletContainerInitializer 就存在了一个SPI,其内容为 对ServletContainerInitializer实现类的全路径:org.springframework.web.SpringServletContainerInitializer
       
       4.对ServletContainerInitializer的实现类SpringServletContainerInitializer分析:

@HandlesTypes({WebApplicationInitializer.class}) 
public class SpringServletContainerInitializer implements ServletContainerInitializer {   //实现ServletContainerInitializer接口,用于取代web.xml编写。
	public SpringServletContainerInitializer() {}
	@Override
	public void onStartup(Set<Class<?>> webAppInitializerClasses, ServletContext servletContext) throws ServletException {
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值