Springboot初总结

一、传统SSM项目存在的缺陷

  1.配置繁多:大多配置都是固定,基本不会变;配置文件过多,维护麻烦

  2.依赖过多:可能依赖冲突

  3.tomcat7插件有点过时:没有解决GET请求的中文乱码问题

  4.部署项目过于麻烦:需要先打成war包,再部署到tomcat的webapp目录下

  5.做不到敏捷式开发

二、认识SpringBoot

  1.推荐零配置文件【自动化配置】,建议使用注解开发

  2.解决依赖繁多的问题,使用起步依赖【starter】

  3.独立运行,内置tomcat

  4.安全,健康,性能测试

1、配置文件名称:

  • application.properties【默认的】

  • application.yml【建议使用,后期使用这个】

  • application.yaml【跟application.yml其实是一样的,只不过优先级不同】

2、加载优先级

  • 同目录下:properties > yml > yaml

  • 在resources目录下:config目录 > 根目录

  • 在项目根目录下的config目录 > resources目录下的config目录

三、自动化配置原理(简要介绍,供自己看)

1、自动化配置:

创建一个SpringBoot应用,无需加任何配置,就可以开发一个WEB接口,对外提供访问

  • 我们没有配置任何的内容,那么可以直接开发WEB接口,就代表SpringBoot提供了默认的配置

2、原理:@SpringBootApplication是一个组合注解:

    @SpringBootConfiguration

      -@Configuration:代表引导类也是一个配置类

    @ComponentScan:组件扫描,Spring会扫描引导类的包及子包下组件

    @EnableAutoConfiguration

      -Import注解,导入了一个AutoConfigurationImportSelector配置类,会自动执行selectImports方法,最终会通过SpringFactoriesLoader.loadFactoyrNames方法去读取jar中名为META-INF/spring.factories配置文件key为EnableAutoConfiguration的所有值,最终封装成一个字符串数组,加载进内存。

2.2 SpringApplication.run方法

  • 会构造一个SpringApplication对象,会对一些属性进行初始化

    • 判断是否具备WEB环境

    • 读取jar中为META-INF/spring.factories中的spring初始化器及spring监听器封装成两个集合进行内存

    • 判断是否具备main方法

  • run方法

    • 会去内存读取初始化器列表,监听器列表和@EnableAutoConfiguration加载进内存的字符串数组,通过反射创建对象注入到Spring容器中,前提了你导入了相关的起步依赖且满足了各种Conditional的条件

run方法会去读取@EnableAutoConfigurationl加载进内存的字符串数组,通过上下文环境判断是否导入起步依赖,是否应用了各种Conditional注解,创建满足条件的bean并注入到Spring容器中

 

 

 

posted @ 2022-06-09 16:33  S_Jin  阅读(28)  评论(0)    收藏  举报