`
JerryWang_SAP
  • 浏览: 1030591 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

SpringBoot的配置优先级,一个具体的练习例子

阅读更多

SpringBoot里的官方文档叫做Externalized Configuration:

优先级依次如下:

(1) Devtools global settings properties in the $HOME/.config/spring-boot folder when devtools is active.

(2) @TestPropertySource annotations on your tests.

(3) properties attribute on your tests. Available on @SpringBootTest and the test annotations for testing a particular slice of your application.

(4) Command line arguments.

(5) Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property).

(6) ServletConfig init parameters.

 

(7) ServletContext init parameters.

 

(8) JNDI attributes from java:comp/env.

(9) Java System properties (System.getProperties()).

 

(10) OS environment variables.

 

(11) A RandomValuePropertySource that has properties only in random.*.

 

(12) Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants).

 

(13) Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants).

 

(14) Application properties outside of your packaged jar (application.properties and YAML variants).

 

(15) Application properties packaged inside your jar (application.properties and YAML variants).

 

(16) @PropertySource annotations on your @Configuration classes. Please note that such property sources are not added to the Environment until the application context is being refreshed. This is too late to configure certain properties such as logging.* and spring.main.* which are read before refresh begins.

 

(17) Default properties (specified by setting SpringApplication.setDefaultProperties).

 

做个实验,在run as configuration里,program argument设置为server.port=8001,

Environment环境变量设置为server.port=8002.

在SpringBoot项目内部的Application.properties文件设置成8000:

最后运行时,生效的端口是环境变量设置进去的8002:

在shell里使用set命令设置环境变量,也能按照期望的方式工作:

 

0
1
分享到:
评论

相关推荐

    springboot入门实例2:springboot配置文件的位置和加载优先级

    springboot入门实例2:springboot配置文件的位置和加载优先级 博客地址:https://blog.csdn.net/u010476739/article/details/98380095

    springboot配置文件的加载顺序解析

    一、SpringBoot配置文件的加载顺序 在SpringBoot中,配置文件的加载顺序是按照优先级从高到低的顺序进行加载的。下面是按照优先级从高到低的顺序列出的配置文件加载顺序: 1. file:./config/ 2. file:./classpath:...

    详解Spring Boot读取配置文件与配置文件优先级

    首先,我们需要创建一个配置类,使用 `@Configuration` 注解来标记该类: ```java @Configuration @PropertySource("classpath:config/druid.properties") @ConfigurationProperties(prefix = "druid") public ...

    vc线程优先级的简单例子例子

    在这个例子中,我们创建了三个线程,分别设置为最高、默认和最低优先级。`WorkerThread`函数模拟了线程执行的工作,并打印出当前线程的优先级。`WaitForMultipleObjects`函数用于同步,确保所有线程执行完毕后再继续...

    SpringBoot-2.7.6读取配置文件的方式

    在Java中,可以使用`@ConfigurationProperties`注解将YAML配置映射到一个Java类: ```java @Configuration @ConfigurationProperties(prefix = "myApp") public class MyAppProperties { private String property...

    springBoot+jsp源码实例

    关于"压缩包子文件的文件名称列表":springboot_jsp可能是一个目录或者压缩文件的名字,这通常包含整个项目的所有源代码、资源文件、配置文件等。在这个目录下,可能会有src/main/java存放Java源代码,src/main/...

    SpringBoot常见错误及解决方法1

    配置优先级问题是 Spring Boot 中的一个重要问题。Spring Boot 的配置优先级可以分为以下几个方面: 1. 命令行参数 2. Java 系统属性 3. OS 环境变量 4. RandomValuePropertySource 5. application.properties 6. ...

    基于频率优先级的切换应用、优先级切换流程、参数配置.docx

    《基于频率优先级的切换应用、优先级切换流程、参数配置》 5G网络优化是一项关键的技术任务,其中,基于频率优先级的切换是优化策略的一部分,尤其在多频段同覆盖组网的情况下,它能有效提升网络效率。在高低频段同...

    SpringBoot自动配置原理.docx

    例如,创建一个配置类,通过`@ConfigurationProperties`绑定配置文件中的参数,然后在需要的地方通过@Autowired注入该配置类,直接使用配置值。此外,通过`@Import`导入自定义的配置类或组件,可以灵活地扩展Spring ...

    springboot连接池、动态配置多数据源连接池,特别适合大数据部门、数据中台服务的多数据源连接池.zip

    5. **配置事务管理器**:由于多数据源的存在,需要配置一个多数据源的PlatformTransactionManager,例如DataSourceTransactionManager。 6. **使用数据源**:在Service或Repository层,可以通过@Autowired注解注入...

    SpringBoot第 5 讲:SpringBoot+properties配置文件读取

    另一种获取配置的方式是通过`Environment`对象,它是SpringBoot应用中的一个核心组件。在需要配置信息的类中,可以通过依赖注入获取: ```java @Autowired private Environment env; ``` 然后你可以通过`env....

    SpringBoot使用JMS的小例子(ActiveMQ实现)

    SpringBoot简化了配置和应用开发,而ActiveMQ是Apache出品的一个开源、高效的JMS提供者,常用于实现消息队列和消息中间件。 首先,让我们了解JMS的基本概念。JMS是一个为分布式环境设计的API,它允许应用程序创建、...

    SpringBoot扩展点EnvironmentPostProcessor.doc

    EnvironmentPostProcessor 是 SpringBoot 中的一个扩展点,用于在应用程序启动时加载配置属性。通过实现 EnvironmentPostProcessor 接口,可以在应用程序中加载自定义的配置属性,并且可以控制配置属性的优先级。 ...

    java中的线程优先级例子

    一个常见的例子是,高优先级线程等待一个低优先级线程释放共享资源,这会导致高优先级线程被阻塞,反而降低了系统的整体效率。为了解决这些问题,Java引入了优先级队列调度策略,但这个策略并不能完全避免优先级反转...

    STM32优先级学习笔记

    ### 描述解读:STM32中断优先级详细介绍,并有完整的例子,是一个极好学习笔记 该描述进一步明确了本文将详细介绍STM32中的中断优先级机制,并提供实际的例子以帮助读者更好地理解这些概念。中断优先级是指在多个...

    SpringBoot+EventBus使用教程示例代码

    在本文中,我们将深入探讨如何在SpringBoot应用中使用EventBus,这是一个基于Guava库的事件总线系统。EventBus的引入使得松耦合的组件间通信变得更加简单和高效。让我们一起通过步骤来理解这个“SpringBoot+EventBus...

    SpringBoot内部外部配置文件加载顺序解析

    SpringBoot框架中,配置文件的加载顺序是一个非常重要的topic。了解配置文件的加载顺序,可以帮助我们更好地管理和使用配置文件,提高项目的可维护性和可扩展性。 首先,SpringBoot会从内部和外部两个方面加载配置...

    【SpringBoot】多环境配置.doc

    如果一个配置项在多个配置文件中出现,那么命令行参数的优先级最高,其次是针对当前环境的配置文件,最后是主配置文件。 5. **最佳实践**: - 保持配置文件的整洁,将环境相关的变量归类到各自的环境配置文件中。...

    Springboot引用外部配置文件的方法步骤

    我们可以在 `application.properties` 文件中添加以下配置:`spring.profiles.active=dev`,然后创建一个名为 `application-host.properties` 的配置文件,就可以在不同的环境下使用不同的配置文件了。 Springboot ...

    springboot2.1.0指南本地版

    SpringBoot 2.1.0是Spring框架的一个重要版本,它在SpringBoot 2.0的基础上引入了更多改进和新特性,旨在简化Java应用程序的开发流程,尤其是微服务架构。以下是一些关于SpringBoot 2.1.0的关键知识点: 1. **依赖...

Global site tag (gtag.js) - Google Analytics