目录
🐼今日良言:清醒 知趣 明得失 知进退
🐭一、SpringBoot介绍
1.SpringBoot 是什么?
Spring 的诞生是为了简化 Java 程序的开发,而 Spring Boot 的诞生是为了简化 Spring 程序开发的。
简而言之,SpringBoot 就是为了快速开发Spring的。
2.SrpingBoot 的优点
🐭二、SpringBoot创建和使用
首先需要安装 SpringBoot Helper 插件才能创建 SpringBoot项目:
安装好之后,它的名字就变成了 Spring Initializr and Assistant,如下图所示:
接下来创建SpringBoot 项目:
此时当加载完成以后,SpringBoot项目就创建好了。
创建好的目录如下:
SpringBoot 项目有两个主要的目录:
运行SpringBoot 项目:
点击启动类的 main ⽅法就可以运⾏ Spring Boot 项⽬了:
启动成功如下图所示:
Spring 是一个普通的 Java 项目,没办法直接和浏览器进行互动,我们需要使用 SpringBoot 来实现和浏览器及用户的交互。
以输出最简单的:Hello word 为例。
在创建的项目包路径下(demo包下)创建UserController类,代码如下:
@Controller // 五大类注解之一
@ResponseBody // 加在类上 表示当前类中的所有方法返回的都是非静态页面的数据
@RequestMapping("/user")
public class UserController {
@RequestMapping("/hi")
public String sayHi() {
return "Hello World";
}
}
@RequestMapping 注解 相当于 @WebServlet("/url") 注解,表示将一个路径和这个类关联起来。
这里的@Controller 注解和 @ResponseBody 注解可以使用一个注解@RestConrtoller 来表示:
查看@RestController 注解源码会发现:
此时重新启动项目,在浏览器中输入URL:127.0.0.1:8080/user/hi 最终执行效果:
需要注意的是:
以上就是SpringBoot 项目的创建以及使用。
🐭三、SpringBoot配置文件
在一个项目中,所有的重要数据都是在配置文件中配置的,例如:数据库的连接信息,项目的启动端口等。所以配置文件是非常重要的。
SpringBoot 配置文件主要有两种风格:
1. properties 基本语法:
properties 是以键值的形式配置的,key 和 value 之间 是以“ = ”连接的,如:
# 连接数据库
spring.datasourse.url=jdbc:mysql://127.0.0.1:3306/use?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
如果在项目中想要主动读取配置文件中的内容,可以使用@Value 注解来实现。
@Value 注解使用格式: “${}”:
代码如下:
@RestController
@RequestMapping("/user")
public class UserController {
@Value("${server.port}")
private String port;
@RequestMapping("/hi")
public String sayHi() {
return "System.port:"+port;
}
}
运行项目,使用url进行访问,效果如图所示:
properties 配置的缺点: 有大量的冗余信息,比如在配置数据库连接信息的时候:
2. yml 基本语法:
yml 是YAML 的缩写,全称是:Yet Another Markup Language,翻译如下:
创建 配置文件时,后缀名是 .yml 或者 .yaml 都是可以的。
yml 是树形结构的配置文件,基本语法是:“key: value” ,key 和 value 之间使用英文 : 加空格的方式组成的,空格不能省略。
如:
# 连接数据库
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/use?characterEncoding=utf8
username: root
password: root
在yml 中还可以配置不同的数据类型以及null:
# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null,~代表null
null.value: ~
yml 读取配置的方式和 properties 相同,使用 @Value 注解即可:
读取上述字符串 Hello:
启动项目,输入URL,执行结果如下:
还可以在 yml 中配置对象,代码如下:
student:
id: 1
name: zhangsan
age: 18
此时不能使用 @Value 注解来读取配置中的对象了,而是使用@ConfigurationProperties 读取。
创建一个类,这个类中的属性必须和yml配置中的对象的属性一一对应
@ConfigurationProperties("student")
@Component // 添加注解,随着spring的启动而启动,进行加载配置文件中的内容 通过setter方法对属性赋值
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
然后将这个Student类,使用属性注入的方式注入到UserController类中:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private Student student;
@RequestMapping("/hi")
public String sayHi() {
System.out.println(student.getId());
System.out.println(student.getName());
System.out.println(student.getAge());
return null;
}
}
此时,输入URL,查看控制台打印信息:
注:这里的getter 和 setter 方法一定不能省略。
🐭四、SpringBoot日志文件
1.日志的作用:
SpringBoot 项目在启动的时候默认就有日志输出,如下图:
上图中的内容就是 SpringBoot 输出的控制台日志信息。
2.自定义日志打印
自定义日志打印的实现步骤,可以分为两步:
日志级别设置:
在配置文件中设置“logging.level” 配置项即可,如下图:
此时,启动项目,输入URL,查看IDEA控制台打印信息:
此时会发现,只有 error 级别的日志信息才会打印。
3.日志持久化
以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追溯问题,把⽇志保存下来的过程就叫做持久化。
想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后,Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。
设置日志目录,代码如下:
# 设置日志文件的目录
logging.file.path=D:\\log
启动项目,输入URL 以后,查看上述目录下会生成一个spring.log 文件,打开以后会查看到所有的日志信息,如下图:
设置日志文件名,代码如下:
# 设置日志文件的文件名
logging.file.name=D:\\log\\mySpringBootLog.log
启动项目,输入URL以后,上述目录下会生成一个mySpringBootLog.log 文件:
日志信息如下:
当再次启动项目,输入URL以后,会发现后续的日志打印信息并不会覆盖之前的日志信息,而是会追加到后面: