• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:Java开发框架Spring源码分析

java 搞代码 4年前 (2022-01-27) 27次浏览 已收录 0个评论

咱们平时应用springboot我的项目,可能就是继承spring-boot-starter-parent,而后引入一个spring-boot-stater-web依赖,而后创立一个继承于SpringBootServletInitializer启动类持续,而后添上@SpringBootApplication注解。一个初略的springboot我的项目就搭建胜利了。
然而咱们在应用的过程中,应该也会好奇它java培训是怎么运作的,明天咱们就来探索下,springboot我的项目在tomcat中的启动程序。
在servlet 2.5之前咱们都是应用的web.xml配置一个servlet-context,联结spring的时候,咱们要手动注册监听器,还要注册mvcservlet,然而servlet 3.0之后。咱们的我的项目中不须要web.xml也能够间接运行,因为3.0反对去配置化。

spring中的启动类HandleType标注的解决类为org.springframework.web.WebApplicationInitizlizer,所以咱们编写启动类的时候,如果想要能在servlet环境运行的化,就须要继承SpringBootServletInitializer,这样,咱们的我的项目就会随着tomcat启动而开始运行了。
上面咱们来钻研下SpringBootServletInitializer的启动过程。


外部其实就一个createRootApplicationContext办法,这个启动过程,其实也是一个创立SpringApplication的过程。
期间Spring采纳的建造者模式使简单的创立过程,变成一个一个简略对象的创立过程,这样看上去代码逻辑更加直观。
SpringApplicationBuilder创立SpringApplication过程
第一步:创立一个初始状态的SpringApplication对象,SpringApplication创立的时候,先去判断容器是否是Servlet环境,且会去META-INF/spring.factories文件外面加载所有的ApplicationContextInitializer.class以及ApplicationListener.class信息并创立
第二步:为容器创立environment,咱们之间讲述的那个可能收集零碎环境变量的对象
第三步:为SpringApplication创立ServletContextApplicationContextInitializer,用来把SpringApplication绑定到ServletContext中。
第四步:确定SpringApplication中的ApplicationContext实现类,默认为注解驱动的AnnotationConfigEmbeddedWebApplicationContext.class的实现。
第五步:回调启动类中的configure办法,咱们能够在这个办法外面自定义咱们本人的构builder解决逻辑,比方设置启动数据源source。
第六步:实现拆卸,返回SpringApplication对象。
ApplicationContext的启动过程

其实只有英语好点的人,都能间接读出这其中的大抵的步骤,所以这个揭示咱们,在本人平时业务中编写代码的时候,取一个好的办法名字的重要性。
springApplication启动的大抵步骤如下。

图片中有些局部有所省略,然而无论从SpringApplication的创立,还是ApplicationContext的运行阶段,都有大量的回调接口,设计模式的开闭准则体现。
咱们用到当初其实体验最好的就是这个去配置化以及注解和资源文件配置,前面咱们再重点钻研下spring的注解加载是怎么运作的~。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:Java开发框架Spring源码分析
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址