当前位置: 首页 > 知识库问答 >
问题:

Spring Boot配置优先级

澹台华晖
2023-03-14

我正在做一个新的项目,第一次使用Spring-Boot。

传统上,在使用Spring和属性文件进行配置时,我在发行版(WAR)中提供了默认属性,并允许在某个文档位置重写它们。

例如:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:app.properties</value>
            <value>file:${user.home}/.company/app/app.properties</value>
        </list>
    </property>
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="ignoreResourceNotFound" value="true" />
</bean>

这将允许我们在不丢失本地系统配置的情况下重新部署应用程序。

我喜欢Spring,因为它允许我们遵守惯例,这让我担心我可能做错了属性级联。

什么是提供包含在发行版中的外部化属性的最合适的方法,该属性具有合理的默认值(嵌入式数据库、简单的身份验证等)?

此外,如果有人知道,我很想知道在Spring-Boot的属性顺序背后的推理。

共有1个答案

岳英锐
2023-03-14

SpringApplication是一个公共类,因此您可以在运行应用程序之前创建一个实例并设置其属性(静态run()方法只是为了方便)。您还可以使用SpringApplicationBuilder,这是您在外部容器中运行时作为回调获得的内容。使用这些API可以设置默认属性和配置文件,包括application.properties文件的位置(spring.config.location)和名称(spring.config.name)。

注意(根据您提供的链接),您还可以在容器中使用JNDI变量来覆盖或设置环境属性。如果您将多个应用程序打包到同一个JVM中,这也很有用。

 类似资料:
  • 我在这里有一些关于ActiveMQ配置和优先级的类似领域的问题。我目前正在配置ActiveMQ代理以关闭消息持久性。 根据文档,我知道它可以通过代理配置来实现: XML配置文件() 客户端的URI(TCP://localhost:61616?persistent=false) 代理端的 URI-XML配置文件(TCP://localhost:61616?persistent=false)。 我的第

  • 但没有任何例子。 你能举个例子吗?

  • 本文向大家介绍springcloud config配置读取优先级过程详解,包括了springcloud config配置读取优先级过程详解的使用技巧和注意事项,需要的朋友参考一下 情景描述 最近在修复Eureka的静态页面加载不出的缺陷时,最终发现是远程GIT仓库将静态资源访问方式配置给禁用了(spring.resources.add-mappings=false)。虽然最后直接修改远程GIT仓库

  • 本文向大家介绍ThinkPHP中支持哪些配置模式?优先级?相关面试题,主要包含被问及ThinkPHP中支持哪些配置模式?优先级?时的应答技巧和注意事项,需要的朋友参考一下 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以优先顺序从右到左。

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>