共计 2583 个字符,预计需要花费 7 分钟才能阅读完成。
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 对象的迷信利用。