目录
1.1 IDEA联网版官方URL https://start.spring.io 注:如果创建不了,更改URL https://start.aliyun.com
基础篇
SpringBoot
Spring的缺点:
Spring是一个非常优秀的轻量级框架,以IOC(控制反转)和AOP(面向切面)为思想内核,极大简化了JAVA企业级项目的开发。
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。使用Spring进行项目开发需要在配置文件中写很多代码,所有这些配置都代表了开发时的损耗。
除此之外,Spring项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。比如Spring5.0以上只能使用Junit4.12以上的版本。
总结起来,Spring的缺点就是:
- 配置过于繁琐。
- 引入的依赖过多,版本控制复杂。
什么是SpringBoot?
SpringBoot对Spring的缺点进行改善和优化,基于约定大于配置的思想,简化了Spring的开发,所谓简化是指简化了Spring中大量的配置文件和繁琐的依赖引入。所以SpringBoot是一个服务于框架的框架,它不是对Spring功能的增强,而是提供了一种快速使用Spring框架的方式
SpringBoot的优点:
- 配置简单
- 依赖引入简单
- 提供了一些大型项目的非功能特性,如嵌入式服务器,安全指标,健康监测等。
自动配置
SpringBoot项目自动提供最优配置,同时可以修改默认值满足特定的要求。
起步依赖
SpringBoot的依赖是基于功能的,而不是普通项目的依赖是基于JAR包的。SpringBoot将完成一个功能所需要的所有坐标打包到一起,并完成了版本适配,我们在使用某功能时只需要引入一个依赖即可。
Springboot3 版本要求
然使用SpringBoot是需要一定版本要求的:
1、SpringBoot入门案例
1.1 IDEA联网版
官方URL https://start.spring.io 注:如果创建不了,更改URL https://start.aliyun.com
① 创建新模块
② 选择当前模块需要使用的技术集
③ 开发控制器类
④ 运行自动生成的Application类
⑤ 运行测试
注:Spring程序与SpringBoot程序对比
1.2 官网创建版
1.3 手工制作版
① 创建新模块
② 导入坐标
③ 制作引导类
④ 运行测试
1.4 隐藏指定文件/文件夹
2、入门案例解析
2.1 SpringBoot简介
2.2 parent
2.3 starter

2.4 parent和starter对比
2.5 引导类
2.6 内嵌tomcat
2.7 辅助功能

2.8 内置服务器
3、基础配置
3.1 属性配置
3.2 不同配置文件优先级
3.3 解决yaml和yml文件没提示

3.4 配置文件书写格式
① yaml语法规则
② 字面值表示方式
③ 数组表示方式
country: china
province: guangdo
city: shanwei
area: chengqu
port: 8080
party: true
birthday: 2000-07-29
user1:
name: zyy
age: 22
a:
b:
c:
d: 123
likes1:
- game
- music
- sleep
likes2: [ game,music,sleep ]
users1:
- name: zyy
age: 23
- name: zqh
age: 24
users2:
- name: zyy
age: 23
- name: zqh
age: 24
users3: [ { name: zyy,age: 23 },{ name: zqh,age: 24 } ]
baseDir: c:\windows
# 使用${属性名} 引用数据
temoDir1: ${baseDir}\temp
# 使用引号包裹的字符串,其中的转义字符可以生效
temoDir2: "${baseDir}\temp \t1 \t2 \t3"
3.5 读取yaml配置文件的数据
@RestController
@RequestMapping("/books")
public class BookController {
//读取yaml数据中的单一数据
@Value("${country}")
private String country;
@Value("${user1.name}")
private String name;
@Value("${likes1[1]}")
private String likes1;
@Value("${users1[0].age}")
private int age;
@Value("${temoDir1}")
private String temoDir1;
@Value("${temoDir2}")
private String temoDir2;
@GetMapping
public String getById() {
//country ====== china
System.out.println("country ====== " + country);
//name ====== zyy
System.out.println("name ====== " + name);
//like1 ====== music
System.out.println("like1 ====== " + likes1);
//age ====== 23
System.out.println("age ====== " + age);
//temoDir ====== c:\windows\temp
System.out.println("temoDir1 ====== " + temoDir1);
//temoDir2 ====== c:\windows emp 1 2 3
System.out.println("temoDir2 ====== " + temoDir2);
return "SpringBoot is running...";
}
}
3.6 解决读取yaml配置文件数据的痛点

@RestController
@RequestMapping("/books")
public class BookController {
//读取yaml数据中的单一数据
//使用自动装配将所有的数据封装到一个对象Environment中
@Autowired
private Environment env;
@GetMapping
public String getById() {
//china
System.out.println(env.getProperty("country"));
//zyy
System.out.println(env.getProperty("user1.name"));
return "SpringBoot is running...";
}
}
3.7 封装数据
// 1、定义数据模型封装yaml文件中对应的数据
// 2、定义为spring管控的bean
@Component
// 3、指定加载的数据
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
private String driver;
private String url;
private String username;
private String password;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "MyDataSource{" +
"driver='" + driver + '\'' +
", url='" + url + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
4、整合第三方技术
4.1 整合Junit
4.2 整合MyBatis
① 创建新模块
② 选择当前模块需要使用的技术集
③ 设置数据源参数
④ 定义数据层接口与映射配置
⑤ 运行测试
4.3 整合MyBatis常见问题
4.4 整合MyBatis-Plus
① 手动添加SpringBoot整合MyBatis-Plus的坐标
② 定义数据层接口与映射配置
③ 设置相关的配置文件