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对象的迷信利用。