• Springboot属性加载与覆盖优先级与SpringCloud Config Service配置


    参考官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

    Spring Boot uses a very particular PropertySource order that is designed to allow sensible overriding of values. Properties are considered in the following order:

    1. Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties 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. 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.
    17. Default properties (specified by setting SpringApplication.setDefaultProperties).

    由于SpringCloud config的配置文件属于上面的第14/12,理论上优先级相对java -jar命令行参数来说是要低的,但cloud的配置确默认是:远程覆盖本地(OS/java -jar参数等)overrideSystemProperties = true,需要特别注意。

    package org.springframework.cloud.bootstrap.config;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    /**
     * Properties for Spring Cloud Config bootstrap.
     *
     * @author Dave Syer
     */
    @ConfigurationProperties("spring.cloud.config")
    public class PropertySourceBootstrapProperties {
    
        /**
         * Flag to indicate that the external properties should override system properties.
         * Default true.
         */
        private boolean overrideSystemProperties = true;
    
        /**
         * Flag to indicate that {@link #isOverrideSystemProperties()
         * systemPropertiesOverride} can be used. Set to false to prevent users from changing
         * the default accidentally. Default true.
         */
        private boolean allowOverride = true;
    
        /**
         * Flag to indicate that when {@link #setAllowOverride(boolean) allowOverride} is
         * true, external properties should take lowest priority and should not override any
         * existing property sources (including local config files). Default false.
         */
        private boolean overrideNone = false;
    
        public boolean isOverrideNone() {
            return this.overrideNone;
        }
    
        public void setOverrideNone(boolean overrideNone) {
            this.overrideNone = overrideNone;
        }
    
        public boolean isOverrideSystemProperties() {
            return this.overrideSystemProperties;
        }
    
        public void setOverrideSystemProperties(boolean overrideSystemProperties) {
            this.overrideSystemProperties = overrideSystemProperties;
        }
    
        public boolean isAllowOverride() {
            return this.allowOverride;
        }
    
        public void setAllowOverride(boolean allowOverride) {
            this.allowOverride = allowOverride;
        }
    
    }
  • 相关阅读:
    C#+Arcengine创建内存图层
    Creating a Feature Set via C#
    ArcGIS Server for JavaScript api安装部署
    Lucene.Net 3.0.3如何从TokenStream中获取token对象
    MMSEG 中文算法说明
    java DotNet char 代码对应
    Lucene.Net 3.0.3如何从TokenStream中获取token对象
    java DotNet char 代码对应
    9.7
    9.6
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/10952749.html
Copyright © 2020-2023  润新知