开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第28天,点击查看活动详
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug..
- 掘金LV3用户 juejin.cn/user/bug..
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug..
- 华为云云享专家 bbs.huaweicloud.com/bug..
配置文件的作用
整个项目中重要的数据信息都在配置文件中进行配置:
- 数据库连接信息(url,用户名,密码)
- 程序启动端口
- 用于发现问题和定位问题的项目运行的普通日志和异常日志
- 第三方系统调用的秘钥
可以知道我们的配置文件在SpringBoot项目中十分重要,没有配置信息就不能进行数据库连接操作,也缺少了项目排查的日志信息,而且SpringBoot约定大于配置,所以日志信息十分重要!
配置文件格式
.properties.yml
我们的
application配置文件也是SpringBoot项目默认的配置文件! 也是久之前老款的配置文件,而yml配置文件是新款的配置文件,通用性更强! 同一个项目可以使用这两种格式的配置文件! 但是我们的一般会统一配置格式!还有就是application格式的配置文件优先级更高,当我们一个配置信息在这2个格式的配置文件都进行配置后,application优先!
properties配置文件
基本语法
采用
key = val键值对的形式 ! 键和值间通过=连接, 键值对之间通过换行分割
# 配置项目端口号
server.port=8084
#配置数据库连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
我们properties格式的文件是通过#进行注解信息!
读取配置文件
我们在配置文件配置的信息又如何读取呢? 我们可以通过
@Value注解中的${}输入配置的key值,进行读取操作: 注意${}需要""包裹:例如:@Value("${server.port}")
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadYML {
@Value("${server.port}")
private String port;
@PostConstruct
public void postConstruct(){
System.out.println("Read Properties,port:"+port);
}
}
@PostConstruct注解:这是java提供的注解 修饰非静态的的void方法,被修饰的方法会在服务器加载Servlet时运行并且只允许一次! 在PostConstruct构造函数之后执行,再init方法之前! 通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序: Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
properties不足之处
虽然
properties是SpringBoot默认的配置格式,并且优先级高! 但是该格式的配置文件,因为是由=进行建值连接会有很多冗余信息!还有该配置文件只能用于
java项目代码,通用性低