什么是SpringBoot
SpringBoot是一款有助于开发的框架,它的设计目的就是为了用来简化Spring应用的初始搭建和开发过程
其核心运行和pom.xml和Application类
Spring和SpringBoot二者相比来说,SpringBoot开发更加方便,体现在:
pom配置,直接勾选添加
pom版本自动组合最优兼容,在parent,在parent中直接规定好了不同版本的SpringBoot最优搭配
没有繁琐配置类,例如config
内置服务器:内嵌tomcat是吧tomcat服务器变成对象的过程,然后将对象给spring容器的过程
starter:包含了多个依赖的信息,减少了依赖配置
引导类:Application就是bean容器,核心就是@SpringBootApplication注解
注意事项:开发SpringBoot程序需要在联网的环境下进行,因为默认是就是去官网创建工程
如果创建失败也可以去官网创建,会得到压缩包可以导入工程
如果还是创建失败,可以使用阿里云,将默认设置为http://start.aliyun.com
小技巧:隐藏文件
搜索FIle Types
选择Ignored Files and Folders,就可以添加过滤类别了,比如一些帮助文档,或者不想看的文件就可以隐藏
小技巧:比较文件
compare files
SpringBoot配置文件
知识点:
SpringBoot默认配置文件
application.Properties,写的格式为键值对
比如默认端口是8080,要想更改端口,就是用server.port=80
关闭运行日志图标banner
spring.main.banner-mode=off
设置日志相关
logging.level.root=debug
SpringBoot主流的配置文件格式 yml和yaml 都是一样的格式
server:
port: 80
如果多个文件同时出现的优先级是:Properties>yml>yaml
主流的格式是.yml
语法规则:
大小写敏感
缩进表示层级关系
属性值前面加空格(重要)
YAML 语法规则笔记
一、字面值表示方式
boolean:TRUE、true、True、FALSE、false、False 均可,如
boolean: TRUE
float:支持科学计数法,如
float: 3.14
、float: 6.8523015e+5
int:支持二进制、八进制、十六进制,如
int: 123
、int: 0b1010_0111_0100_1010_1110
null:用
~
表示,如null: ~
string:可直接书写(如
string: Helloworld
),含特殊字符可用双引号包裹(如string2: "Hello World"
)date:需用
yyyy - MM - dd
格式,如date: 2018-02-17
datetime:时间和日期用
T
连接,最后+
表时区,如datetime: 2018-02-17T15:02:31+08:00
二、数组表示方式
基本格式:在属性名下方,用减号(
-
)作数据开始符,每行一个数据,减号与数据间空格分隔,如:
yaml
subject:
- Java
- 前端
- 大数据
嵌套格式(对象数组 ):
格式一:
yaml
users:
- name: Tom
age: 4
- name: Jerry
age: 5
格式二(更紧凑 ):
yaml
users:
-
name: Tom
age: 4
-
name: Jerry
age: 5
缩略格式:
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]
缩略写法:可直接在一行用
[ ]
列举,如likes: [王者荣耀,刺激战场]
,与多行带减号写法等效
读取yml数据
简单类型
@Value("${country}")
private String country;
一、YAML 数据读取方式
(一)通过 Environment 对象读取
原理:Spring Boot 会将 YAML 配置数据封装到
Environment
对象中,可通过注入Environment
来获取配置值。示例
YAML 配置(application.yml):
yaml
lesson: SpringBoot
server:
port: 82
enterprise:
name: itcast
age: 16
tel: 4006184000
subject:
- Java
- 前端
- 大数据
Java 代码(Controller):
java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private Environment env;
@GetMapping("/{id}")
public String getById(@PathVariable Integer id) {
System.out.println(env.getProperty("lesson"));
System.out.println(env.getProperty("enterprise.name"));
System.out.println(env.getProperty("enterprise.subject[0]"));
return "hello, spring boot!";
}
}
说明:通过
env.getProperty("key")
形式,依据 YAML 的层级结构(用.
分隔)获取对应配置值,数组元素用[索引]
访问 。
(二)自定义对象封装指定数据
原理:利用
@ConfigurationProperties
注解,将 YAML 中指定前缀的配置映射到自定义 Java 对象的属性上,实现配置与对象的绑定。示例
YAML 配置(以 enterprise 为例,延续上面的配置结构 ):
yaml
enterprise:
name: itcast
age: 16
tel: 4006184000
subject:
- Java
- 前端
- 大数据
自定义对象(Enterprise 类):
java
@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
private String name;
private Integer age;
private String[] subject;
// 省略 getter 和 setter 方法
}
在 Controller 中使用:
java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private Enterprise enterprise;
// 可通过 enterprise 对象获取对应配置值,进行业务逻辑处理
}
另一个数据源配置示例(datasource):
YAML 配置:
yaml
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
自定义对象(DataSource 类):
java
@Component
@ConfigurationProperties(prefix = "datasource")
public class DataSource {
private String driverClassName;
private String url;
private String userName;
private String password;
// 省略 getter 和 setter 方法
}
说明:
@Component
使对象成为 Spring 组件,被容器管理;@ConfigurationProperties(prefix = "xxx")
指定 YAML 中配置的前缀,对象属性名要与 YAML 配置项名(驼峰和短横线风格可自动映射,如driver-class-name
对应driverClassName
)一致,方便批量、结构化获取配置 。
二、两种方式对比与适用场景
通过这两种 YAML 数据读取方式,能高效在 Spring Boot 应用中获取配置,助力实现灵活的配置管理与业务逻辑开发 。
整合第三方技术
junit
@ Repository是写在持久层的注解
junit在SpringBoot自动整合,无需新加依赖,测试类的上方有@ SpringBootTest注解,被此注解标注的类为测试类
测试类必须放在与容器类所在包的相同包或者子包下,否则会报错识别不到,可以使用标注classes=(SpringBootApplication.class)来扫描的到