1>实例Demo
1 正文
idea创建空项目springboot3.
1 File >> New >> Project... >> Empty Project
2 项目springboot3,右键新建Model,boot3-01-demo
<!--所有的springboot项目都必须集成spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.5</version>
</parent>
<dependencies>
<!--web开发的场景启动器 包含了springMVC json依赖等-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3 创建HelloController
package com.lianying.boot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController //相当于@Controller+@ResponseBody
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "Hello,SpringBoot3";
}
}
4 创建com.lianying.boot.MainApplicaotion启动类
package com.lianying.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args){
SpringApplication.run(MainApplication.class,args);
}
}
运行main方法后,浏览去输入localhost:8080/hello。页面返回Hello,SpringBoot3
5 打包Jar。pom.xml添加
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在maven窗口执行。或者执行 mvn clean package
打包后的文件在target目录。
执行jar 。java -jar boot3-01-demo
2 本章总结
1 简化整合
导入相关的场景,拥有相关的功能。场景启动器
官方提供的场景 命名 spring-boot-starter-*
第三方提供的场景 命名 *-spring-boot-starter
2 简化开发
无需编写配置,直接开发业务
3 简化配置
application 集中式管理配置。配置基本都有默认值
4 简化部署
打包为可执行jar.
5 简化运维
使用外部applicatin文件
2>SpringBoot依赖管理机制
1 为什么导入starter-web所有相关依赖都导入进来?
- 开发什么场景导入什么场景启动器
- maven依赖床底顺序,A-B-C 。A就拥有B和C
- 导入 场景启动器,启动器就把这个场景的所有核心以来全部导入进来
2 为什么不用写版本号
- 每个boot项目都有一个父项目,spring-boot-starter-parent
- parent的父项目是spring-boot-dependencies
- 父项目版本仲裁中心,把所有常见的的jar依赖版本都声明好了
3 自定义版本
利用maven的就近原则。直接在当前的pom中生命版本号
3>自动配置机制
1 自动配置的Tomcat、SpringMVC等
- 以前DispatcherServlet ViewResolver...
- 现在自动配置好这些组件
- 验证
@SpringBootApplication
public class MainApplication {
public static void main(String[] args){
var d=SpringApplication.run(MainApplication.class,args);
String i[]=d.getBeanDefinitionNames();
for(String n:i){
System.out.println(n);
}
}
}
2 默认扫描规则:只会扫描主程序所在包以及子包
3 自定义扫描路径
@SpringBootApplication(scanBasePackages="")
@ComponentScan()
4 配置默认值
配置文件的所有配置项是和某个类的对象值进行一一绑定的。
5 按需加载自动配置