Spring Boot基础知识学习(三)-自动配置以及场景启动器

spring boot相对于spring来说简化了很多配置(这些配置由spring boot自动完成,而不用手动完成),本文主要讲的是有关spring boot的自动配置问题。

首先新建一个简单的spring boot项目。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)主程序(主入口类)

package com.example.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloworldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloworldApplication.class, args);
    }

}

上面这个类即是我们创建的spring boot项目的启动类(自动生成)。这里面有一个注解@SpringBootApplication,该注解就是用来说明spring boot程序的启动类的,当启动spring boot项目时便会启动该启动类的主方法。这个注解还包含另外两个注解@SpringBootConfiguration@EnableAutoConfiguration

  • @SpringBootConfiguration 标记spring boot的配置类
  • @EnableAutoConfiguration 开启自动配置功能,只有该注解启用后,spring boot的自动配置功能才能实现。@EnableAutoConfiguration又包含@AutoConfigurationPackage和@Import(AutoConfigurationPackages.Registrar.class)注解
    @AutoConfigurationPackage 自动配置包,通过Spring的底层注解@Import,给容器中导入一个组件AutoConfigurationPackages.Registrar.class;
    将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
    @Import(AutoConfigurationPackages.Registrar.class)给容器中导入组件(将所有需要导入的组件以全类名的方式返回)

(2)场景启动器
在pom.xml文件中引入了以下依赖

<dependencies>
        <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>

spring-boot-starter,spring-boot场景启动器,帮我们导入了web模块正常运行所依赖的组件。
spring boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
有关具体的场景启动器可参见官方文档spring-boot-starter

在这里插入图片描述
2020.03.30

发布了82 篇原创文章 · 获赞 91 · 访问量 9499

猜你喜欢

转载自blog.csdn.net/ataraxy_/article/details/105200674