吃透SprinngBoot

标签:static   团队   需要   项目   ssi   定义   mes   nal   发展   

Springboot

1、概述

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

2、构建SpringBoot项目

初始化项目
技术图片
技术图片
项目结构

3、SpringBoot自动装配分析

3.1、启动类

//@SpringBootApplication:表示这个类是SpringBoot的类
@SpringBootApplication
public class SpringbootDemo01Application {
    //将SpringBoot应用启动
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemo01Application.class, args);
    }

}

3.2、分析

Ctrl+鼠标点击@SpringBootApplication进入
技术图片
这个注解也是个派生注解,点击进入下一层
技术图片
?这个注解也是?个派?注解,其中的关键功能由@Import提供,其导?的AutoConfigurationImportSelector的selectImports()?法通过
SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包。spring-boot-autoconfigure-x.x.x.x.jar?就有?个这样
spring.factories?件。这个spring.factories?件也是?组?组的key=value的形式,其中?个key是EnableAutoConfiguration类的全类名,?它的value是?个xxxxAutoConfigur
的列表,这些类名以逗号分隔,如下图所示:
技术图片
这个@EnableAutoConfiguration注解通过@SpringBootApplication被间接的标记在了Spring Boot的启动类上。在SpringApplication.run(...)的内部就会执
selectImports()?法,找到所有JavaConfig?动配置类的全限定名对应的class,然后将所有?动配置类加载到Spring容器中。
每?个XxxxAutoConfiguration?动配置类都是在某些条件之下才会?效的,这些条件的限制在Spring Boot中以注解的形式体现,例如:

@ConditionalOnBean:当容器?有指定的bean的条件下。
@ConditionalOnMissingBean:当容器?不存在指定bean的条件下。
@ConditionalOnClass:当类路径下有指定类的条件下。
@ConditionalOnMissingClass:当类路径下不存在指定类的条件下。
@ConditionalOnProperty:指定的属性是否有指定的值,?如@ConditionalOnProperties(prefix=”xxx.xxx”, value=”enable”, matchIfMissing=true),代
xxx.xxx为enable时条件的布尔值为true,如果没有设置的情况下也为true。

技术图片

吃透SprinngBoot

标签:static   团队   需要   项目   ssi   定义   mes   nal   发展   

原文地址:https://www.cnblogs.com/HezhenbinGoGo/p/14229341.html

版权声明:完美者 发表于 2021-01-07 11:44:26。
转载请注明:吃透SprinngBoot | 完美导航

暂无评论

暂无评论...