Java核心知识回顾(三)
1 Spring Boot
现在软件市场已经形成一定的规模,系统架构的复杂度也越来越高(例如有单体架构,分布式架构,微服务架构)。软件的整个架构体系正在发生很大变化,在这种变化中,企业现在更注重技术的开箱即用,更注重技术在生态圈中的深度融合,更注重轻量级的运维。由此spring boot诞生。
说明:学技术一定要了解技术发展史,并对技术的发展有一定的前瞻性。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
1.1 Spring Boot核心特性
Spring boot是一个脚手架(而非框架),构建于Spring框架(Framework)基础之上,基于快速构建理念,提供了自动配置功能,可实现其开箱即用特性(创建完一个基本的项目以后,可零配置或者少量配置即可运行我们的项目),其核心主要有如下几个方面:
- 起步依赖(Starter Dependency)。
- 自动配置(Auto Configuration)。
- 健康检查(Actator)-监控。
其中,Spring Boot官方地址为https://spring.io/projects/spring-boot
1.2 Spring Boot项目启动过程分析
思考:SpringBoot工程在启动时会做些什么?
- 1)通过线程调用相关API从指定路径查找相关的配置文件,class文件.
- 2)调用IO对象从磁盘中读取文件(将文件内容读到内存-CPU只能从内存取数据)
- 3)检测类是否有特定注解描述(例如@Controller,@Service,…)
- 4)Spring框架基于工厂对象(BeanFactory)为指定class创建其实例对象,并基于
配置描述对这些对象进行初始化操作. - 5)将对象存储到Spring框架管理的池中(Bean池-其底层设计在这里是一个map)
====未完待