SpringBoot-8-属性配置

简介: SpringBoot-8-属性配置

SpringBoot-8-属性配置



本文主要介绍SpringBoot的属性配置,主要包括:

  • 配置文件的格式和位置
  • 配置文件的自定义属性
  • 配置文件的多环境配置


文章最后我的公众号二维码,也可搜索springboot葵花宝典进行关注,回复:springboot,可以获取一些博主搜集的SpringBoot学习资料


1.配置文件介绍


我们在使用SpringBoot进行开发的时候,虽然SpringBoot针对我们常用的开发场景提供了一系列的自动化配置,用于减少原来复杂但是很少改动的模板化内容。但是当我们遇到一些特殊场景的时候还是会修改配置内容,以满足这些特殊场景。并且到SpringCloud的时候,我们会有很多针对配置文件的工作去做,因此我们很有必要将SpringBoot中配置进行详细介绍。


1.1 文件格式

SpringBoot配置文件有两种格式:


  • .properties : 配置文件通过**=**进行赋值,没有层次感
  • yaml : 配置文件通过key:value分层进行赋值,比较有层次感,有序



yaml配置信息:

spring:  application:    name: part8server:  port: 8088  servlet:    context-path: /test



等价的properties配置

spring.application.name=part8server.servlet.context-path=/testserver.port=8088


注:** **@PropertySource**注解是不支持对yaml、yml读取



1.2 文件位置

配置文件可以存放的位置


  • src\main\resources\config
  • src\main\resources

在文件存放位置中存在优先级:


  • src\main\resources\config下的.properties覆盖src\main\resources文件下的.properties相同属性
  • 在相同位置下**.yml覆盖.properties**的相同属性。


例如:src\main\resources\config\application.properties配置文件:

server.port=8888


src\main\resources\application.properties配置文件

server.port=8088


启动后在控制台发现结果:

INFO 23792 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8888 (http) with context path ''


:还可以通过@PropertySource(“classpath:config.properties”) 来读入任意其他设置文件。

1.3 自定义参数配置及读取

除了SpringBoot模块中特有的属性配置以外,我们还可以根据我们的开发需求,进行自定义属性配置,具体步骤:


在application.yml中配置

student:  name : 张三  age: 20  sex: 男



a 使用@Value读取application.yml中配置

@RestControllerpublic class TestController {    @Value("${student.name}")    private String name;    @Value("${student.age}")    private String age;    @Value("${student.sex}")    private String sex;    @GetMapping("/test")    public String test(){        return "name: " + name+ "  age: "+age+" sex: "+sex;    }}


b 或者使用@ConfigurationProperties

@Data@Component@ConfigurationProperties("student")public class StudentProperties {    private String name;    private String age;    private String sex;}


@Autowired    private StudentProperties properties;    @GetMapping("/test2")    public String test2(){        return "name: " + properties.getName()+ "  age: "+properties.getAge()+" sex: "+properties.getSex();    }


  • Controller
  • Component

运行http://localhost:8888/test 和http://localhost:8888/test 结果都为

name: 张三 age: 20 sex: 男


注@Value还支持二元操作符并支持嵌套

${property:default value}



1.4 SpringBoot的多环境配置


一般我们在开发一套系统以后,会有多个不同的环境系统,例如:开发,测试、上线等。不同环境中的数据库,服务地址,端口等都有可能不一样。最笨的办法是不同环境频繁打包然后对配置文件修改,这样容易发生人为错误


SpringBoot多环境配置格式



  • application-{profile}.properties
  • application-{profile}.yml

其中**{profile}**表示环境,使用spring.profiles.active属性来启用对应的配置文件,例如

application-pro.yml  表示生产环境application-dev.yml  表示开发环境application-test.yml 表示测试


  1. 在IDEA调试的时候可以在IDEA中进行配置。如下:



17307c14d0684202a1820f197039ec9b.png

JAR执行

命令行参数方式

java -jar xxx.jar --spring.profiles.active=test

JVM参数 -Dkey=value

java -jar xxx.jar Dspring.profiles.active=test

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!

目录
相关文章
|
5月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
2月前
|
druid Java Maven
|
2月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
356 0
|
4月前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
52 0
|
6月前
|
Java 关系型数据库 MySQL
SpringBoot系列教程之事务传递属性
SpringBoot系列教程之事务传递属性
|
7月前
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
214 1
|
7月前
|
Java 开发者 Spring
Spring Boot中的资源文件属性配置
【4月更文挑战第28天】在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
68 1
|
7月前
|
XML 设计模式 Java
springboot创建并配置环境3 - 配置扩展属性(下)
springboot创建并配置环境3 - 配置扩展属性(下)
springboot创建并配置环境3 - 配置扩展属性(下)
|
7月前
|
JSON Java 数据库连接
属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践
属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践
117 1
|
7月前
|
SQL Java
【SpringBoot】List<实体类>如何去重,单、多属性去重
【SpringBoot】List<实体类>如何去重,单、多属性去重
484 0