springBoot 二 初体验,初探原理。

70 阅读2分钟

一 初体验,创建项目 。hello world

1.1 idea 创新项目 。

image.png

1.2 写名字,选jdk,选开发工具,web 。。

image.png

开发工具。 image.png web image.png

选好后,创建项目

1.3 写hello world 并运行。

package tech.xuxing.d3.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String test()
    {
        return "hello world";
    }
}

image.png

还可以直接跑 jar 包。

二 自动装配原理。

先熟悉pom.xml

一 核心依赖。

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>

二 启动器。 springboot 的启动场景; //比如-starter-web 自动导入web 环境所有的依赖(tomcat ) //如果要使用什么 功能,只需要找到对应的启动器就可以了。starter

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

二 主程序,初步了解。

@SpringBootApplication 标注是一个springboot 应用

先看注解 。 @SpringBootApplication

@SpringBootApplication
    @congiguration 配置
    @Component 说明这也是一个spring 组件
@EnableAutoConfiguration
    @AutoConfigurationPackage  自动配置包
        @Import(AutoConfigrationPackage.Register.class) 

结论: springboot 所有的自动配置,都是在启动的时候扫描并加载。 spring.factories 所有的自动配置类都有这里。 导入了对应的start 就有了对应的启动器,有了启动器,自动装配就生效,然后配置成功。

  1. springboot 在启动的时候,从类路径下 /META-INF/spring.factoreis 获取指定的值。
  2. 将这些自动配置的类导入容器。自动配置类就会生效 ,帮我们进行自动配置 。
  3. 以前我们需要自动配置的东西,现在springboot 帮我们做了。
  4. 整个javaEE,解决方案和自动配置的东西,都在spring.boot.autoConfiguration。xxx.jar 包下
  5. 它会把所有需要导入的组件,以类名的方式返回 ,这些组件就会被添加到容器。
  6. 容器中会出现多个xxxAutoConfiguration ,就是这些文件(Bean),给容器中导入了这个场景需要的所有组件。

三 了解下主启动类怎么运行。(后期深入学习)

SpringApplication.run(D4Application.class, args); 事实上是开启了一个服务 。

1 推断。 2 run() 1 判断项目 。 2 推断当前主类。 3 获取上下文,处理bean .