目录
一、*.properties格式
# 关闭 Spring 默认的 banner 显示
spring.main.banner-mode=off
# 关闭启动日志打印
spring.main.log-startup-info=false
# 让 banner 显示某张图的字符形式
spring.banner.image.location=classpath:hill.png
# 显示更详细的调试信息
debug=false
# 设置日志文件的路径(不要用中文)
logging.file.name=D:\\log\\myapp.log
# 设置日志输出级别
# logging.level 是固定的
# 后边跟着一个包名 / 类名
# 如果是包名,则这个包下的所有类(孩子 + 子孙)都遵守这个输出级别
# 如果是类名,则只有这个类遵守这个输出级别
logging.level.com.example.demo=info
logging.level.com.example.demo.JustLog=debug
# 控制台的日志格式(只输出消息本身)
logging.pattern.console=%clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n
zhuzhu.name=zhuzhu
zhuzhu.gender=male
二、*.yml格式
spring:
main:
# 关闭 Spring 默认的 banner 显示
banner-mode: off
# 关闭启动日志打印
log-startup-info: false
banner:
image:
# 让 banner 显示某张图的字符形式
location: classpath:hill.png
# 官方的数据库就是这个 key,所以这里是为了尽量贴近官方,实际用什么都行
datasource:
url: jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 显示更详细的调试信息
debug: false
logging:
file:
# 设置日志文件的路径(不要用中文),使用 YAML 格式时,可以正常使用中文
# YAML 下不用再做 \ 的转义了
name: D:\log\myapp.log
# 设置日志输出级别
# logging.level 是固定的
# 后边跟着一个包名 / 类名
level:
# 如果是包名,则这个包下的所有类(孩子 + 子孙)都遵守这个输出级别
com.example.demo: info
# 如果是类名,则只有这个类遵守这个输出级别
com.example.demo.JustLog: debug
# 如果是类名,则只有这个类遵守这个输出级别
com.example.demo.AppConfig: debug
pattern:
# 控制台的日志格式(只输出消息本身)
# 中间有 YAML 的特殊字符,用单引号引起来
console: '%clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n'
peixinchen:
name: 中国人
gender: 男
home-page: https://peixinchen.com
其实就是这两个的格式不一样。
三、读取配置文件的方式
1.Environment对象
@Slf4j
@Component
public class ReadFromConfig1 {
@Autowired
public ReadFromConfig1(Environment environment) {
String value = environment.getProperty("logging.file.name");
log.info("读取到的 logging.file.name = " + value);
value = environment.getProperty("peixinchen.name");
log.info("读取到的 peixinchen.name = " + value);
if ("chenpeixin".equals(value)) {
log.info("欢迎");
} else {
log.info("新的用户");
}
value = environment.getProperty("peixinchen.gender");
log.info("读取到的 peixinchen.gender = " + value);
}
}
2.使用@value注解
@Slf4j
@Component
public class ReadFromConfig2 {
public ReadFromConfig2(
// 一定要使用 Spring 下的那个 @Value 注解
@Value("${logging.file.name}") String xxx,
@Value("${peixinchen.name}") String name,
@Value("${peixinchen.gender}") String gender) {
log.info("读取到的 logging.file.name = " + xxx);
log.info("读取到的 peixinchen.name = " + name);
log.info("读取到的 peixinchen.gender = " + gender);
}
}
3.使用@configurationproperti注解
就是相当于把一组配置的内容包装成一个对象。
@Component
@ConfigurationProperties(prefix = "spring.datasource")
@Data
public class MySQLConfig {
private String url;
private String username;
private String password;
}
这里需要注意,setter方法是必须要写的,因为这里加上了@Data注解,所以包含了。