这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战
第一篇文章中我们学习了SpringBoot的特点,使用IDEA编译器初始化一个SpringBoot项目,并尝试将项目在本地打包部署,今天我们就从配置文件开始逐步的认识SpringBoot项目结构。
约定大于配置
SpringBoot在使用时主张约定大于配置,即开发人员仅需要规定应用中不符合约定的部分,对于特殊的设置,在配置文件中进行手动设置;在没有规定配置的地方,采用默认配置,以力求最简单配置。
修改启动banner
SpringBoot项目启动banner虽然很正经,但是我们进行项目开发时可以换成自己的项目图案,或者可以自定义为其他图案。
- SpringBoot默认Banner内容
- 我们可以自定义启动时显示的banner图案,在项目的
src/main/resources目录下新建banner.txt文件,将自己的图案写进去即可。ASCll图案可以在ASCII Generator或degraeve.com中生成,并将结果复制到banner文件中。 - 不显示banner,在启动类的main方法中设置,即可实现banner的关闭。
自定义配置
在项目路径下为src/main/resources/application.properties或src/main/resources/application.yml作为SpringBoot项目的全局配置文件,可以在其中对默认配置进行修改。配置文件中可以配置所有的官方属性。
自定义属性值
在配置文件中自定义属性(非官方属性),采用JavaBean来加载配置文件中的属性值
- 在配置文件中定义属性
mrbird.blog.name=mrbird's blog mrbird.blog.title=Spring Boot - 定义JavaBean,通过 @Value("${属性名}") 来加载配置文件中的属性值
- 编写Controller,注入加载配置的JavaBean,并使用设置的属性值
- 属性较多时,可定义单独JavaBean与配置文件对应,通过注解来配置Bean与配置文件的关系
- 建立配置类JavaBean,注解其属性与配置文件中相关属性对应关系的注解
注解
@ConfigurationProperties(prefix="mrbird.blog")指明了属性的通用前缀,通用前缀加属性名和配置文件的属性名一一对应。 - 在启动类上加注解@EnableConfigurationProperties({ConfigBean.class})来启用该配置
- 建立配置类JavaBean,注解其属性与配置文件中相关属性对应关系的注解
- 在Controller中注入Bean进行使用
- 配置文件中属性之间的引用使用
${完整属性名称},如:shone.bolg.title = ${shone.blog.namee}
自定义配置文件
- 除了在application.properties中配置属性,我们还可以在src/min/resource目录下定义其他properties文件来定义属性,如定义配置文件test.properties,并配置如下属性
test.name="KangKang" test.age=25 - 定义JavaBean来加载配置文件
- 注解
@PropertySource("classpath:test.properties")指明了使用哪个配置文件 - 同样也要在启动类上,添加注解
@EnableConfigurationProperties({TestConfigBean.class})来启用该配置
XML配置文件
Spring Boot允许在入口类里通过注解@ImportResource({"classpath:some-application.xml"})来引入xml配置文件,但是最新版本的SpringBoot已经不再建议使用XML作为配置文件。
Profile多环境配置
- Profile配置,用来针对不同的环境下使用不同的配置文件(多环境配置文件)
多环节配置文件必须以 application-{profile}.properties 的格式命名,其中profile为环境标识
# application-dev.properties:开发环境 server.port=8080# application-prod.properties:生产环境 server.port=8081 - 最终SpringBoot启动时要加载那一个配置文件,需要在主配置文件
application.properties中进行设置,其中spring.profiles.active设置为对应的{profile}值,属性的值即代表启用的对应配置文件。如spring.profiles.active=dev表示加载生产环境配置。
以上就是对SpringBoot配置相关内容的学习,通过此次学习,我们可以实现自定banner、自定义配置文件属性值、自定义配置文件,也可以根据不同的运行环境来配置加载不同配置文件,实现一个项目多环境配置运行。