由于 SpringBoot 贯彻 约定大于配置的思想 ,所以很多的配置 都有默认值,如果我们想自定义去指定我们想要的配置,我们就可以创建自己的配置文件 后缀格式有2种 但是文件名 只有一个 application
application.properties (键值对形式)
application.yml 或者 application.yaml(yml格式)
两者简单对比
properties 内容
spring.port=8080
yml 格式
spring:
port: 8080
Spring Cloud 中bootstartp 加载顺序优先于application 但是SpringBoot不识别这个规则
示例: bootstartp.properties > application.properties
properties > yaml > yml
即:如果 properties 中存在的配置 在 yaml 或者 yml 配置文件也有 那么就会优先使用 properties中的配置;如果 properties中没有的配置,那么就会在yaml、yml中进行读取。
yaml 是一个配置文件格式 是以数据为核心,比xml更加简洁
YAML、XML、 Proprerties 对比
Properties 不容易看出 层级关系
XML 写起来要写标签 麻烦
YAML 优点多多
person:
name: zhangsan
age: 20
#行内写法
persion: {name: zhangsan,age: 20}
address:
- beijing
- shanghai
#行内写法
address: [beijing,shanghai]
msg: 'hello \n world' # 单引号 \n 不会被识别为换行
msg: "hello \n world" # 双引号 \n 会被识别为换行
Yaml 参数引用
name: "zhangsan"
persion:
name: ${name} # 引用了 name 的值 zhangsan 了
配置文件的内容:一部分 会被Spring 自动识别,另一部分 不能自动获取,就需要我们自己手动获取了
我们获取文件值有3种方式
例如 当前Yml 中有
name: "zhangsan"
我们获取 就需要获取
@value("${name}")
private String name;
这里说一个事情 打死你都获取不了,static是干嘛的?优先加载,final是干嘛的,都会导致你无法获取值,切记,切记 不能加static 也不能加final 也不能同时加
@value("${name}")
private static final String name1;
关于数组处理:yml
persion:
address: [beijing,shanghai]
@value("${persion.address[0]}")
private static final String name1; //beijing
常量跟对象是一样的,只是区分了’A \n B’ ,”A \n B” 的单双引号区别
yml中有:
name: "zhangsan"
@Autowired
private Environment env;
使用就是
String name = env.getProperties("name");
yml 中有
name: "libai"
persion:
name: "zhangsan"
age: 18
创建一个Persion 类 加入 下面的红色 内容即可 下面没写 构造方法 ,使用前,请自行添加。
@Component // 声明这是个Bean
@ConfigurationProperties
@Data
public class Persion{
private String name;
// libai
private int age;
// 0
}
@Component // 声明这是个Bean
@ConfigurationProperties(prefix = "persion") // 可以选择括号内容 是否填写
@Data
public class Persion{
private String name; // zhangsan
private int age; // 18
}
讲解一下 prefix 即 前缀,将来赋值属性的时候 就会拼接上去 即找XXX的时候就会去找persion.XXX
终了
然后说明一个依赖 可以增加 yml 的提示功能
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
profile 配置方式
profile 激活使用 不激活 不会去使用
如果配置文件 没有被启用激活 在SpringBoot项目启动的时候,一般来说第二行就会出现
2021-02-06 09:45:55.709 INFO 22520 --- [ main] com.giant.shop1688application : No active profile set, falling back to default profiles: default
简单的看信息 也能看出来,没有设置profile,回去使用默认的 profile
在resources中配置 4个文件
文件1:application.properties
文件2:application-dev.properties 指定端口 8081
文件3:application-test.properties 指定端口 8082
文件4:application-pro.properties 指定端口 8083
在applicaiton.properties中使用
spring.profiles.actice=pro
那么就会指定启动配置文件 application-pro.properties 所以启动端口是8083
自己生成一个Banner还是比较炫酷的:http://patorjk.com/software/taag/
点击上图的Test All 就可以生成非常多的样式,有的格式不支持Test All。 找到自己喜欢的 复制到一个名为banner.txt 文件里
将banner.txt 拖至项目的 resources中 重启项目 spring默认即使用我们能banner!
如果想更变banner名称,需要在配置文件中加入,
#指定banner
spring.banner.charset=UTF-8
spring.banner.location=你指定的名称.txt
#如果放到其他位置,建议使用classpath 进而去找到你指定的文件位置即可!
spring.banner.location=classpath:banner.txt
Banner可以写的花里胡哨,比如:
${AnsiStyle.BOLD} 字体样式 BOLD
${AnsiStyle.FAINT} 字体样式 FAINT 翻译是弱小,但跟默认的差不多
${AnsiStyle.ITALIC} 字体样式 ITALIC 斜体
${AnsiStyle.NORMAL} 字体样式 NORMAL 标准
${AnsiStyle.UNDERLINE} 字体样式 UNDERLINE 强调(带有下划线)
${AnsiColor.BRIGHT_CYAN} 字体颜色:亮青色
${AnsiColor.BLACK} 字体颜色:黑色
${AnsiBackground.BRIGHT_GREEN} 背景颜色:鲜绿色
${AnsiBackground.BLUE} 背景颜色:蓝色
${AnsiBackground.BRIGHT_WHITE} 背景颜色:亮白
${AnsiBackground.BRIGHT_GREEN} ________ __ _____ _ ____ ____ ____ ____ ______
${AnsiBackground.BRIGHT_GREEN} | __ _| [ | |_ _| (_) |_ _| |_ _||_ \ / _| .' ____ \
${AnsiBackground.BRIGHT_GREEN} |_/ / / | |--. .---. _ .--. | | __ ,--. .--. \ \ /\ / / | \/ | | (___ \_|
${AnsiBackground.BRIGHT_GREEN} .'.' _ | .-. | / /__\\ [ `.-. | | | _ [ | `'_\ : / .'`\ \ \ \/ \/ / | |\ /| | _.____`.
${AnsiBackground.BRIGHT_GREEN} _/ /__/ | | | | | | \__., | | | | _| |__/ | | | // | |, | \__. | \ /\ / _| |_\/_| |_ | \____) |
${AnsiBackground.BRIGHT_GREEN} |________| [___]|__] '.__.' [___||__] |________| [___] \'-;__/ '.__.' \/ \/ |_____||_____| \______.'
${AnsiStyle.NORMAL} 这个非常重要,不恢复(使用Normal)的话,之前加入的AnsiBackground的位置会变形
枕聊WMS(Web Menagerment Server) 后台启动中...
This Project create in 2021-09-25..
SpringBoot Version is ${spring-boot.version}
Project port is ${server.port}
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!