spring源码阅读记录

2023-05-16

spring启动方式之一:

    通过实现servlet3.0的Servlet容器初始化接口javax.servlet.ServletContainerInitializer,调用onStartup方法来启动项目。(无web.xml模式)

   具体原理:             

      实现javax.servlet.ServletContainerInitializer接口的类MyServletContainerInitializerImpl需要添加javax.servlet.annotation.HandlesTypes注解(该注解是为了获取实现类MyServletContainerInitializerImpl中onStartup(Set<Class<?>> c, ServletContext ctx)的Set<Class<?>> 集合。该集合是由HandlesTypes注解设置的类(以及该类的所有继承类)/接口(该接口的所有实现类)/注解(使用该注解的所有类/接口/方法等)组成。如果实现类MyServletContainerInitializerImpl没有添加HandlesTypes注解,或者没有找到HandlesTypes注解所指定的相关匹配集合,Set集合为null。

     实现类MyServletContainerInitializerImpl必须声明在一个jar包中。在目录META-INF/services下,文件名为接口ServletContainerInitializer的全路径,即javax.servlet.ServletContainerInitializer,内容为实现类MyServletContainerInitializerImpl的全路径。然后会被运行时的服务提供者查找机制或者容器自己特殊的机制所发现。

 )。       

 

  编写类实现  ServletContainerInitializer,并且添加 @HandlesTypes(xxx.class)注解,xxx类即被操作的接口

   实例:

   @HandlesTypes(WebApplicationInitializer.class) public class SpringServletContainerInitializer implements ServletContainerInitializer {

@Override

public void onStartup(@Nullable Set<Class<?>> webAppInitializerClasses, ServletContext servletContext) throws ServletException {

    ...

 }

}

 

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring源码阅读记录 的相关文章

随机推荐

  • debug技巧和使用

    介绍一种能debug到HashMap内部数据结构的方法 https blog csdn net victor cindy1 article details 52336983 1 这里以一个web工程为例 xff0c 点击图中按钮开始运行we
  • Linux中如何添加/删除FTP用户并设置权限?

    以阿里云服务器为例 xff0c 在linux中添加ftp用户 xff0c 并设置相应的权限 xff0c 操作步骤如下 xff1a 1 环境 xff1a ftp为vsftp 被设置用户名为test 被限制路径为 alidata www tes
  • 解析IOS二进制格式的bplist

    关于二进制格式的plist xff0c 搜到一篇博客 详解Binary Plist格式 xff0c 介绍的很详细 xff0c 但是结合github上关于一份解析bplist的代码通过结果实际来看 xff0c 博客中解析对象表的说明出现了问题
  • Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候 xff0c 遇到了这样一个问题 xff0c 就是String StringBuilder以及StringBuffer这三个类之间有什么区别呢 xff0c 自己从网上搜索了一些资料 xff0c 有所了解了之后在这里整
  • SynthesizedAnnotation

    标识组合注解 该接口没有实现类 xff0c 具体用法待研究
  • autowire注解源码解析

    引用 xff1a https blog csdn net wang704987562 article details 80868368
  • ConcurrentHashMap解析

    https www cnblogs com ITtangtang p 3948786 html java util concurrent xff08 j u c xff09 源码阅读
  • Java中getResourceAsStream的用法

    https www cnblogs com macwhirr p 8116583 html 首先 xff0c Java中的getResourceAsStream有以下几种 xff1a 1 Class getResourceAsStream
  • Map var2 = this.bfgInstancesByKey; synchronized(this.bfgInstancesByKey) { 疑惑

    org springframework beans factory access SingletonBeanFactoryLocator useBeanFactory public BeanFactoryReference useBeanF
  • spring父子容器

    https www jb51 net article 132197 htm http www cnblogs com kevin yuan p 6404702 html https blog csdn net user xiangpeng
  • ContextLoaderListener与RequestContextListener配置问题

    https blog csdn net yanweju article details 70622313 在SSH2 SSM等web应用开发框架的配置过程中 xff0c 因为都要用到Spring xff0c 所以 xff0c 往往我们首先都
  • Class的isAssignableFrom方法

    https www cnblogs com hzhuxin p 7536671 html Class类的isAssignableFrom是个不常用的方法 xff0c 感觉这个方法的名字取得不是很好 xff0c 所以有必要在此解析一下 xff
  • dto层与model层的区别

    Model层是面向业务的 xff0c 我们是通过业务来定义Model的 而DTO是面向界面UI的 xff0c 是通过UI的需求来定义的 通过DTO我们实现了表现层与Model之间的解耦 xff0c 表现层不引用Model 如果开发过程中我们
  • 常用命令 ctags的使用

    1 命令ctags ctags的功能 xff1a 扫描指定的源文件 xff0c 找出其中所包含的语法元素 xff0c 并将找到的相关内容记录下来 ctags R 扫描当前目录及所有子目录 xff08 递归向下 xff09 中的源文件 结合v
  • idea 导入 maven依赖包的源码

    修改maven的版本为maven2 xff08 之前是maven3 xff09 勾选自动下载
  • Error java: 无法访问javax.servlet.ServletException 找不到javax.servlet.ServletException的类文件

    pom xml文件添加下面依赖 xff1a lt dependency gt lt groupId gt javax lt groupId gt lt artifactId gt javaee api lt artifactId gt lt
  • 如何看Spring源码

    https blog csdn net qq 27529917 article details 79209846 想要深入的熟悉了解Spring源码 xff0c 我觉得第一步就是要有一个能跑起来的极尽简单的框架 xff0c 下面我就教大家搭
  • AnnotationAwareOrderComparator

    https blog csdn net zhuqiuhui article details 82974026 AnnotationAwareOrderComparator简介 xff1a AnnotationAwareOrderCompar
  • HandlerInterceptor

    对SpringMVC有所了解的人肯定接触过HandlerInterceptor拦截器 xff0c HandlerInterceptor接口给我们提供了3个方法 xff1a xff08 1 xff09 preHandle 在执行control
  • spring源码阅读记录

    spring启动方式之一 xff1a 通过实现servlet3 0的Servlet容器初始化接口javax servlet ServletContainerInitializer xff0c 调用onStartup方法来启动项目 无web