zoukankan      html  css  js  c++  java
  • 吃透SprinngBoot

    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。
    

  • 相关阅读:
    Shiro 登录、退出、校验是否登录涉及到的Session和Cookie
    Apache Tomcat 8.0 官方文档
    FastDFS分布式文件系统(主备Tracker、主备Storage)
    PHP文件系统
    PHP 文件包含
    PHP函数
    PHP 全局变量
    PHP7新增知识点
    PHP数据
    PHP常量
  • 原文地址:https://www.cnblogs.com/HezhenbinGoGo/p/14229341.html
Copyright © 2011-2022 走看看