SpringBoot 如何实现自动配置

SpringMVC 和 SpringBoot 都是基于Spring的,两者推出的时间相差不大,只不过是SpringMVC推出早点。

关于两者,最近看到一个比较通俗的讲法:

  Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC框架(一些用Spring 解耦的组件),用开发 web 应用( SpringMVC )。

  然后,发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是 Spring Boot。

使用过SSM( SpringMVC+Spring+Mybatis ) ,就会知道需要自己配置不少文件,有点麻烦;

但Spring Boot 不同,实现了自动配置,约定优于配置,简化了spring的配置流程,降低了项目搭建的复杂度。

SSM :Tomcat启动项目,需要配置前端控制器、数据库连接、spring核心配置等等一些文件。

扫描二维码关注公众号,回复: 7295939 查看本文章

SpringBoot:项目启动Tomcat,只需要配置一两个properties文件就可以了。

  两者都是基于Spring的,那Springboot是如何减少配置文件、实现自动配置的呢???

  实现核心:使用JavaConfig配置方式 和 容器管理 。

  在Java里面,一切皆对象。JavaConfig配置,就是通过bean创建或实现、添加属性,从而实现相关的配置。目前,JavaConfig配置方式在逐步取代xml配置方式。另外,容器也是一种对象。

实现自动配置大致可分为几个模块:

  1、new Tomcat() ,设置相关属性值 。

  2、写一个 WebApplicationInitializer 接口的实现类(Servlet规范会自动加载指定接口的所有实现类,WebApplicationInitializer就是其中一个接口)。WebApplicationInitializer可以看做是Web.xml的替代。通过实现WebApplicationInitializer,在其中可以添加servlet,listener等,在加载Web项目的时候会加载这个接口实现类,从而起到web.xml相同的作用。

  3、加载实例化 ApplicationContext , 从而创建管理Bean (Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理)。

  4、创建初始化 DispatcherServlet 。

共同学习,共同进步,若有补充,欢迎指出,谢谢!

共同学习,共同进步,若有补充,欢迎指出,谢谢!

猜你喜欢

转载自www.cnblogs.com/dengguangxue/p/11530907.html