spring boot概述
概述:是一个全新框架,设计目的是用来简化spring应用的初始搭建以及开发过程。
spring boot程序优点:
起步依赖(简化依赖配置)
自动配置(简化常用工程相关配置)
辅助功能(内置服务器)
程序流程
1.parent
1、定义了java编译版本为1.8
2、使用UTF-8的格式
3、继承自spring-boot-dependencies,这里面定义了依赖的版本,正式因为这里面定义 了依赖的版本,所以我们在写依赖时才不用写版本号
4、执行打包操作的配置
5、自动化资源过滤
6、自动化的插件配置
7、针对application.properties和application.yml的资源过滤,包括profile定义的不同环境的配置文件,例如application-dev(pro).properies和application-dev(pro).yml
2.starter:
SpringBoot中常见的项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配资的目的。
引导类
整个boot工程的执行入口,运行main方法可以执行项目。
//spring boot配置类,默认扫描配置类所在包,加载bean不能扫描上面的包
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
//创建spring容器,加载项目里面的bean
SpringApplication.run(Demo1Application.class, args);
}
}
内嵌tomcat
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sVdO5dKW-1686393354549)(C:\Users\lxy\AppData\Roaming\Typora\typora-user-images\image-20230605165857180.png)]
restful
优点:隐藏资源的访问行为,无法通过地址得知对资源时何种操作。
书写简化
基础配置
1.属性配置
修改服务器端口:
在resource目录下面的application.properties里面添加:
server.port=8080
2.配置文件类型
1.application.properties
2.application.yml
3.application.yaml
生效级别:properties>yml>yaml
三个配置文件不同的配置可以共存,不会被顶替。
yam数据格式
yaml语法规则:
1.大小写敏感
2.属性层级使用多行描述,每行结尾使用冒号结束
3.使用缩进表示层级关系,同层级左对齐,只允许使用空格
4.属性值前面加空格(属性名与属性值之间使用冒号+空格进行分隔)
5.注释使用#
AML(YAML Ain’t Markup Language)是一种可读性高,用于序列化数据的格式。它的语法简洁易读,常被用作配置文件的格式。
以下是YAML的基本语法格式:
- 键值对
yaml复制代码key: value
- 列表
yaml复制代码- item1
- item2
- item3
- 嵌套结构
yaml复制代码parent:
child1: value1
child2:
- subitem1
- subitem2
- 注释
yaml复制代码# This is a comment
key: value # This is also a comment
在YAML中,使用缩进来表示层级关系,每个层级使用两个空格或一个制表符进行缩进。同时,YAML也支持使用---
来表示文档的开始,使用...
来表示文档的结束。
例如:
yaml复制代码---
key1: value1
key2:
- item1
- item2
key3:
subkey1: subvalue1
subkey2: subvalue2
...
注意,YAML对于缩进的要求非常严格,如果缩进不规范,会导致解析错误。
4.yml值的获取
1.使用@value注解
@Value("${key}")
private String value;
//获取yml的单行值
@Value("${name}")
private String name;
//获取多行里面的值
@Value("${user.username}")
private String username;
//获取数组中的值
@Value("${likes[0]}")
private String hobby;
@Value
注解用于注入YAML中的属性值。通过${key}
指定属性的键名,Spring Boot会自动将YAML中的值赋给value
变量。
yaml属性引用
# yaml支持转义字符
home: d:/test/user
file:
userDir: ${home}/user.txt
2.Environment获取
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
//注入对象,将所有的数据都装到这个数据里面
@Autowired
private Environment environment;
public void getValue() {
//使用getProperty方法获取value
String value = environment.getProperty("key");
System.out.println(value);
}
}
将一组数据封装到一个对象的中创建对应类去加载数据
使用@Configurat
ionProperties
注解
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//需要扫描
@Component
//指定配置中的属性
@ConfigurationProperties(prefix = "my")
public class MyProperties {
private String key;
// getter 和 setter
public void getValue() {
System.out.println(key);
}
}
springboot整合
1.整合Junit
注意:spring boot 的配置默认扫描同一包下或者子包中,如何测试类不在配置类包下,@SpringBootTest中的class属性可以指定配置类,@SpringBootTest注解可以自动加载Spring应用程序上下文,使测试类能够访问应用程序中的其他bean
@SpringBootTest(classes = Demo1Application.class)
//使用contentconfig
@ContextConfiguration(classes = Demo1Application.class)
2.整合mybatis
//整合德鲁伊连接池的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/login
username: root
password: admin
druid:
initial-size: 5
max-active: 20
min-idle: 3
`yaml
//整合德鲁伊连接池的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/login
username: root
password: admin
druid:
initial-size: 5
max-active: 20
min-idle: 3