SpringBoot 学习
SpringBoot 学习
1. SpringBoot 概述
springBoot 提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。
2. SpringBoot 配置
配置文件分类
SpringBoot 是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties(application.yaml)进行配置
注意:
文件格式:
- properties
server.port = 8080
- yaml:
server:
port: 8080
YAML
YAML ( YAML Ain't Markup Language ) 是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如:C/C++,Ruby,Python,Java,Perl,C#,PHP等。YAML 文件是以数据为核心的,比传统的xml更简洁,YAML 文件的扩展名可以使用 .yml 或者 .yaml
基本语法
- 大小写敏感
- 数据值前边必须有空格,作为分隔符
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层次混乱)
- 缩进的空格数目不重要,只要相同的层级的元素左侧对齐即可
- '#' 表示注释,从这个字符一直到行尾,都会被解析器忽略
数据格式
- 对象(map): 键值对的集合
person:
name: zhangsan
# 行内写法
person: {name: zhangsan}
- 数组:一组按次序排列的值
arr:
- xiaomi
- huawei
# 行内写法
arr: [xiaomi,shanghai]
- 纯量:单个的、不可再分的值
msg1: 'hello\n world' # 单引号忽略转义字符
msg2: "hello \n world" # 双引号识别转义字符
参数引用
name: xiaomi
person:
name: ${name} #引用上边定义的name
读取配置内容
@Value
示例代码:
Java文件:
/**
* @Classname HelloworldCintroller
* @Date 2024/3/27 20:49
* @Created by PG_Code
*/
@RestController
public class HelloWorldController {
@Value("${name}")
private String name;
@Value("${person.age}")
private int age;
@Value("${address[0]}")
private String address;
@RequestMapping("hello")
public String hello(){
return "姓名:"+name+" 年龄:"+age+" 住址:"+address;
}
}
yaml 文件:
name: PG_Code
person:
name: ${name}
age: 18
address:
- beijing
- shanghai
Environment
示例代码:
@Autowired
public Environment env;
@RequestMapping("hello")
public String hello(){
System.out.println(env.getProperty("person.name"));
System.out.println(env.getProperty("name"));
return "hello";
}
ConfigurationProperties
示例代码:
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 PG_Code
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果