配置文件是一种计算机文件,可以为计算机程序配置参数和设定初始值。在Spring Boot项目中,resources文件就是配置文件:

该目录下面的static目录里面主要存放静态文件,比如图片,css等。而templates目录下面主要用来存放模板文件。application.properties和application.yml则是项目的配置文件,整个项目中所有的数据都是在该配置文件中配置的,比如:数据库的连接信息、项目的启动端口、第三方系统的调用秘钥等信息、用于发现和定位问题的普通日志和异常日志等。
配置文件主要有两种格式:properties、yml
Spring Boot中配置文件的两个重要作用
1.位系统框架提供数据支持
2.为程序员自己去使用
properties是创建Spring Boot项目默认的配置文件,properties是以键值对的形式配置的,key和value之间是以“=”连接的,比如:
- #配置项目的端口
- server.port=8080
properties的缺点:对于一个参数的多个配置设置很麻烦,需要从开始一直写到结束,并且冗余信息很多。

yml是一个可读性高,易于理解,用来表达数据序列化的格式。yml是以key: value的形式组成,其中key和value之间使用英文冒号加空格的方式组成,并且空格一定不能省略。
- #配置项目端口
- server:
- port: 8888
yml的优点:
可以跨语言、写法更加简洁可读性更高 、支持更多的数据类型
和properties对比,yml使用就比较简洁:
使用yml来配置对象
- student:
- id: 1
- name: Java
- age: 18
或者写成行内写法
student: {id: 1,name: Java,age: 18}
使用yml来配置集合
- dbtypes:
- nema:
- - mysql
- - sqlserver
- - db2
或者使用行内写法
dbtypes: {name: [mysql,sqlserver,db2]}
在Spring Boot项目中读取配置文件
方式一:使用@Value注解来实现,@Value主要用来读取单个配置项。
语法结构:@Value("${key}")
例如读取properties文件中的配置信息:
- @SpringBootApplication
- public class Application implements InitializingBean {
-
- //读取配置文件中的url
- @Value("${spring.datasource.url}")
- private String url;
-
- //读取配置文件中的username
- @Value("${spring.datasource.username}")
- private String username;
-
- //读取配置文件中的password
- @Value("$(spring.datasource.password)")
- private String password;
-
-
- @Override
- public void afterPropertiesSet() throws Exception {
- System.out.println();
- System.out.println("url:"+url);
- System.out.println("username:"+username);
- System.out.println("password:"+password);
- System.out.println();
- }
- }
方式二:使用@ConfigurationProperties("key")来读取多个配置信息
第一步:将配置文件中的一组对象映射到某个类上
在这一步中,两个注解@Component和@ConfigurationProperties非常重要,其中@Component可以替换为其他类注解,它的作用就是将当前类中的属性值替换为配置文件中的属性值。@ConfigurationProperties是用来读取配置文件的,它括号里面的prefix表示配置文件的前缀,prefix可加可不加
第二步:使用注入的方式在其他类中注入Student即可
- @SpringBootApplication
- public class Application implements InitializingBean {
- //使用属性注入的方式来获取到学生类中的学生信息
- @Autowired
- private Student student;
-
- @Override
- public void afterPropertiesSet() throws Exception {
- System.out.println();
- System.out.println("student:"+student);
- System.out.println();
- }
- }

使用@ConfigurationProperties("key")来读取集合
第一步:将配置文件中的一组对象映射到某个类上
第二步:使用注入的方式在其他类中注入MyList即可
- @SpringBootApplication
- public class Application implements InitializingBean {
-
- //使用属性注入的方式来获取到MyList集合中的信息
- @Autowired
- private MyList myList;
-
- @Override
- public void afterPropertiesSet() throws Exception {
- System.out.println();
- System.out.println("mylist:"+myList.getName());
- System.out.println();
- }
- }