SpringBoot2 配置
一.Properties与Yaml
SpringBoot支持properties与yaml两种配置文件application.properties/application.yml
yaml简单使用
1.yaml简介
yaml是以数据为中心的,比json,xml更适合做配置文件
2.yaml基本语法
k: v:形式的键值对,:后面必须有空格
以空格缩进来控制层级关系
大小写敏感
例子:
server: port: 8081 # 设置默认端口号 servlet: path: /init
值的写法
k: v 直接书写
【字符串默认不用加上单引号或者双引号】
"":双引号;不会转义字符串里面的特殊字符;
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
对象
k: v:在下一行来写对象的属性和值的关系
例如:
persion: name: zhangsan age: 10
行内写法:
persion: {name: zhangsan,age: 10}
数组(List,Set,Map)
普通数组,List,Set 使用 -值 来表示数组中的一个元素
arrays: - arrays1 - arrays2 - arrays3
Map使用k: v的形式来表示
map:
k1: v1
k2: v2
k3: v3
使用配置文件注入
在pom.xml引入依赖,用于注释处理器生成自己的元数据
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
实体类:
/** * persion类 */ @Component @ConfigurationProperties(prefix = "persion") public class Persion { private String name; private int age; private boolean isMan; private Date birth; private String[] hobbys; private Map<String,String> skills; private List<String> enjoys; // 省略getter setter toString }
yaml配置:
persion: name: zhangsan age: 20 isMan: true birth: 1997/11/12 hobbys: - 篮球 - 足球 - 乒乓球 skills: java: javase python: ai enjoys: - eating - running - playgames
测试类
@Autowired Persion persion; @Test public void contextLoads() { System.out.println(persion); }
yaml语法教程
http://www.ruanyifeng.com/blog/2016/07/yaml.html
二.服务器配置
更改端口:
server.port=8081
更改上下文访问路径,SpringBoot默认范文路径为“/”:
server.servlet.context-path=/base
常见的服务器配置
server.port:SpringBoot监听端口
server.error.path:错误处理路径
server.servlet.context-path:配置SpringBoot默认上下文路径
三 日志配置
定义日志级别
日志级别 ERROR WARN DEBUF INFO TRACE 级别从高到低
# 输出日志级别 ERROR WARN DEBUF INFO TRACE,日志只会打印当前级别,以及高于当前级别的日志
logging.level.root=info
输出日志到文件
# 输出日志到文件
logging.file=/my.log
定义日志输出格式
输出到控制台日志格式:
logging.pattern.console=【%level %date %logger %thread %M %L %m】 %n
输出到日志文件的日志格式:
# 定义输出到文件的日志格式
logging.pattern.file=【%level %date %logger %thread %M %L %m】 %n
日志格式基本参数
属性 内容 %level 表示输出日志级别 %date 表示日期发生时的时间 %logger 用于输出Logger名字,包名+类名,{n}限定输出长度 %thread 当前线程名 %M 日志发生时方法的名字 %L 日志调用所在代码行 %m 日志消息 %n 日志换行
日志使用例子:
public class Hello { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(Hello.class); logger.debug("Hello World"); } }
日志的输出格式:
%d:表示日期时间 %thread:表示线程名 %‐5level:级别从左显示5个字符宽度 %logger{50}:表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息 %n:是换行符 %d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n
例子:
设置application.properties的日志配置
# 设置日志等级 logging.level.com.fjut.*=trace # 设置在控制台输出的日志的格式 logging.pattern.console=[%d{yyyy‐MM‐dd}]-[%level]-[%msg]-%logger{50}%n # 指定文件中日志输出的格式 logging.pattern.file=%d{yyyy‐MM‐dd} === [%thread] === %level === %logger{50} ==== %msg%n
# 设置输出日志文件
logging.file=/my.log
测试:
//打印五个等级的日志 @Test public void contextLoads() { Logger logger = LoggerFactory.getLogger(getClass()); logger.error("error ..."); logger.warn("warn ..."); logger.debug("debug ..."); logger.info("info ..."); logger.trace("trace ..."); }