zoukankan      html  css  js  c++  java
  • 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核心配置等等一些文件。

    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 。

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

  • 相关阅读:
    虚拟机备份的五大常见错误及规避方法
    交换机的link-dependency链路依赖功能
    IntelliJ Idea 常用快捷键列表
    Spark-1.X编译构建及配置安装
    maven快速下载jar镜像
    hive权威指南<一>
    vsftpd安装和使用 Linux系统和window系统
    git安装和使用 linux系统和window系统
    cdh版本的hue安装配置部署以及集成hadoop hbase hive mysql等权威指南
    cdh版本的sqoop安装以及配置
  • 原文地址:https://www.cnblogs.com/dengguangxue/p/11530907.html
Copyright © 2011-2022 走看看