SpringBoot学习(二)

262 阅读3分钟

这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战

SpringBoot学习(一)

第一篇文章中我们学习了SpringBoot的特点,使用IDEA编译器初始化一个SpringBoot项目,并尝试将项目在本地打包部署,今天我们就从配置文件开始逐步的认识SpringBoot项目结构。

约定大于配置

SpringBoot在使用时主张约定大于配置,即开发人员仅需要规定应用中不符合约定的部分,对于特殊的设置,在配置文件中进行手动设置;在没有规定配置的地方,采用默认配置,以力求最简单配置。

修改启动banner

SpringBoot项目启动banner虽然很正经,但是我们进行项目开发时可以换成自己的项目图案,或者可以自定义为其他图案。

  • SpringBoot默认Banner内容 image.png
  • 我们可以自定义启动时显示的banner图案,在项目的src/main/resources目录下新建banner.txt文件,将自己的图案写进去即可。ASCll图案可以在ASCII Generatordegraeve.com中生成,并将结果复制到banner文件中。image.png
  • 不显示banner,在启动类的main方法中设置,即可实现banner的关闭。image.png

自定义配置

在项目路径下为src/main/resources/application.propertiessrc/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})来启用该配置
  • 在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、自定义配置文件属性值、自定义配置文件,也可以根据不同的运行环境来配置加载不同配置文件,实现一个项目多环境配置运行。