一 初体验,创建项目 。hello world
1.1 idea 创新项目 。
1.2 写名字,选jdk,选开发工具,web 。。
开发工具。
web
选好后,创建项目
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";
}
}
还可以直接跑 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 就有了对应的启动器,有了启动器,自动装配就生效,然后配置成功。
- springboot 在启动的时候,从类路径下 /META-INF/spring.factoreis 获取指定的值。
- 将这些自动配置的类导入容器。自动配置类就会生效 ,帮我们进行自动配置 。
- 以前我们需要自动配置的东西,现在springboot 帮我们做了。
- 整个javaEE,解决方案和自动配置的东西,都在spring.boot.autoConfiguration。xxx.jar 包下
- 它会把所有需要导入的组件,以类名的方式返回 ,这些组件就会被添加到容器。
- 容器中会出现多个xxxAutoConfiguration ,就是这些文件(Bean),给容器中导入了这个场景需要的所有组件。
三 了解下主启动类怎么运行。(后期深入学习)
SpringApplication.run(D4Application.class, args); 事实上是开启了一个服务 。
1 推断。 2 run() 1 判断项目 。 2 推断当前主类。 3 获取上下文,处理bean .