SpringBoot外围个性
Spring boot是一个脚手架,构建于Spring框架(Framework)根底之上,基于疾速构建理念,提供了主动配置性能,可实现其开箱即用个性(创立完一个根本的我的项目当前,可零配置或者大量配置即可运行咱们的我的项目),其外围次要有如下几个方面:
▪起步依赖(Starter Dependency)-我的项目创立时底层帮你关联依赖。
▪主动配置(Auto Configuration)。
▪健康检查(Actator)-监控。
起步依赖
起步依赖实质是Mavenue我的项目对象模型(pom),定义了对其余库的传递依赖,依赖+依赖+。。。反对某项性能
<!-- 作用1: parent标签 集中定义了SpringBoot所有依赖jar包的版本信息. 由官网解决了jar包冲突性问题. 作用2: 本地仓库中没有该文件的jar包 parent示意的是一个聚合工程(定义). --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent><!--3.依赖工具API--><dependencies> <dependency> <groupId>com.jt</groupId> <artifactId>jt-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency></dependencies>
之前maven我的项目须要关系依赖的版本等等,当初只需关注springboot的版本,其余依赖springboot会帮咱们进行治理。
主动配置-开箱即用
<dependencies> <!-- 手动依赖项 该依赖项被springBoot进行了高度的整合 springBoot帮忙大家动静的生成了配置我的项目,简化了配置的步骤 该配置称之为自动化的配置信息 spring-boot-starter springBoot自动化的启动项. 开箱即用: 只须要导入jar包简略的配置即可实现对应的性能. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
@EnableAutoConfiguration是实现主动配置的入口,该注解通过@Import注解导入了AutoConfigurationImportSelector.class,在该类中加载配置信息,而后删选出以EnableAutoConfiguration为key的数据,加载到IOC容器中,实现主动配置性能。
健康检查
Spring Boot 中actuator模块提供了健康检查,审计、指标收集,HTTP跟踪等性能,能够帮忙咱们更好的治理和跟踪springboot我的项目。
第一步:增加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>
第二步:yml配置文件配置actuator选项
management.endpoints.web.exposure.include=*
第三步:重启服务器,拜访webUI
http://localhost/actuator
SpringBoot的启动过程
我的项目的入口类应用了@SpringBootApplication注解形容,此注解内是:
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的性能。在启动类外面标注了@Configuration,意味着它其实也是一个 IoC容器的配置类.
- @EnableAutoConfiguration:关上主动配置的性能,也能够敞开某个主动配置的选项,如敞开数据源主动配置性能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。springboot 利用把所有符合条件的@Configuration 配置都加载到以后 SpringBoot 创立并应用的 IoC 容器中。
- @ComponentScan:Spring组件扫描。默认会扫描以后 package 下的的所有加了@Component 、@Repository、@Service、@Controller的类到 IoC 容器中;
我的项目启动时产生的过程:
SpringBoot 我的项目在启动时,首先基于启动入口类上的注解形容,进行主动配置并扫描指定包以及子包中的类进行加载,而后检测类上是否有Spring框架中指定的注解形容(例如@Component,@Controller,@Service等)。如果有,则将类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创立Bean的实例,假如此Bean指定了生命周期办法,还会调用生命周期办法。当实例创立当前,Spring框架还会基于类的作用域形容,将实例存储到不同作用域的容器中。以实现Bean对象的迷信利用。