SpringBoot系列第1篇简介

概述

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用中的初始搭建以及开发过程

Sping程序的缺点
1.配置烦琐
2.依赖设置繁琐

SpringBoot的优点
1.自动配置
2.起步依赖(简化依赖配置)
3.辅助功能(内置服务器等)

起步依赖

starter
SpringBoot项目中常见的项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的

parent
所有SpringBoot项目要继承的项目,定义了若干坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的

实际开发
1.使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供
2.如果发生坐标错误,再指定version

jetty

jetty的架构简单,可以按需加载组件,减少不需要的组件,减少服务器内存开销。采用异步的Servlet,可以同时处理大量连接,且长时间保持连接状态。采用NIO在处理I/O请求更占优势,处理静态资源性能更好。嵌入到应用中,使一个普通应用快速支持http服务。

更换tomcat为jetty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--排除tomcat-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加jetty-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

创建项目

创建SpringBoot可以使用官网提供的方法进行创建,需要注意的是不同版本的差距十分巨大,这里学习使用了2.5版本,官网目前没有2.5版本可以先下载下来,重新更改版本。下面的地址是官网提供的快速创建

quickstart

集成开发工具IDEA同样可以创建项目,创建项目的时候只需要选择Spring Initalizr,选择合适的java版本和JDK版本。然后填写好相关的信息,主义包名的路径,不要重复创建子目录。然后选择SpringBoot版本和需要添加的功能。idea的新版本同样不支持2.5,需要手动修改相应的版本。

配置文件

SpringBoot中所有的配置文件存在与resource目录中,核心配置文件名称必须是applicaton。配置文件有properties,yml,yaml三种格式,其中yml和yaml写法是完全相同的。如果三种配置文件同时存在,properties的优先级最高,yaml的优先级最低。

如果没有加载到其他的配置文件,需要在idea中选择file->project struct->facts选中需要添加的模块,来添加相关的配置文件

yaml的优点
1.容易阅读
2.容易与脚本语言交互
3.以数据为核心,重数据轻格式

语法规则
1.大小写敏感
2.属性层级关系使用多行描述,每行结尾使用冒号结束
3.使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
4.属性值前面添加空格(属性名与属性值之前使用冒号+空格作为分割)
5.#表示注释

读取配置

1.使用@Value读取单个数据,属性名引用方式:{一级属性名.二级属性名….}

1
2
3
4
5
6
7
8
9
10
11
12
lesson: SpringBoot

server:
port: 8080

enterprise:
name: itcast
age: 16
tel: 8080080
subject:
- Java
- 前端
1
2
3
4
5
6
7
8
@Value("${lesson}")
private String lessonName;

@Value("${server.port}")
private int port;

@Value("${enterprise.subject[0]}")
private String subjectOne;

2.封装全部数据到Environment对象

1
2
3
4
5
6
7
8
9
10
11
@Autowired
private Environment env;

@GetMapping("/getInfoByEnv")
public String getInfoEnv() {
System.out.println(env.getProperty("lesson"));
System.out.println(env.getProperty("enterprise.name"));
System.out.println(env.getProperty("enterprise.subject[0]"));

return env.getProperty("lesson");
}

3.自定义数据类型封装指定数据

1
2
3
4
5
6
7
8
9
10
11
@Autowired
private Environment env;

@GetMapping("/getInfoByEnv")
public String getInfoEnv() {
System.out.println(env.getProperty("lesson"));
System.out.println(env.getProperty("enterprise.name"));
System.out.println(env.getProperty("enterprise.subject[0]"));

return env.getProperty("lesson");
}

SpringBoot系列第1篇简介
https://www.eldpepar.com/coding/55600/
作者
EldPepar
发布于
2023年2月28日
许可协议