2、为什么说 Java 程序员必须掌握 Spring Boot ?
- Spring:主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层的显示,Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作),Hibernate主要作用是数据的持久化到数据库。
- SpringMVC:是基于Spring的一个MVC框架,用以替代初期的SSH框架;(spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext,使得拥有web功能)。
- Spring Boot:是基于Spring4的条件注册的一套快速开发整合包。
- Spring Cloud:是一种云端分布式架构解决方案,基于spring boot,在spring boot做较少的配置,便可成为 spring cloud 中的一个微服务。是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线线、负载均衠、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。
一、springboot启动流程
springboot特性
springboot启动时执行
- ApplicationListener接口实现
ApplicationStartListener的onApplicationEvent方法在容器启动时已经被成功调用了。而此时初始化的容器为root容器
- ApplicationRunner接口实现
- CommandLineRunner接口实现
CommandLineRunner与ApplicationRunner在Spring Beans初始化之后执行,执行顺序可以实现order接口或者注解@order来标记
springboot的自动装配
- 自动装配是拆箱即用的基础,也是微服务化的前提。
- 自动装配还是利用了SpringFactoriesLoader来加载META-INF/spring.factoires文件里所有配置的EnableAutoConfgruation,它会经过exclude和filter等操作,最终确定要装配的类
- 处理@Configuration的核心还是ConfigurationClassPostProcessor,这个类实现了BeanFactoryPostProcessor, 因此当AbstractApplicationContext执行refresh方法里的invokeBeanFactoryPostProcessors(beanFactory)方法时会执行自动装配
-
ImportSelector用法
Spring Boot之ImportSelector
- 定义一个Annotation, Annotation中定义一些属性,到时候会根据这些属性的不同返回不同的class数组。
- 在selectImports方法中,获取对应的Annotation的配置,根据不同的配置来初始化不同的class。
- 实现ImportSelector接口的对象应该是在Annotation中由@Import Annotation来引入。这也就意味着,一旦启动了注解,那么就会实例化这个对象。
网友评论