• Spring boot-(3) Spring Boot特性2


    1. 外部配置

    Spring Boot支持外部配置,以便可以在不同的环境中使用相同的应用程序代码。可以使用properties文件,YAML文件,环境变量或命令行参数进行外部配置。可以使用@Value注解将属性值直接注入到定义的bean中,可通过Spring的Environment抽象访问该属性,或者通过@ConfigurationProperties绑定到结构化对象。

    Spring Boot使用一个特别的PropertySource顺序,旨在允许合理地覆盖值。属性按以下顺序选择:

    1) 在HOME目录设置的Devtools全局属性,如当devtools设置可用时,该目录为~/.spring-boot-devtools.properties;

    2) 单元测试中的@TestPropertySource注解

    3) 单元测试中的@SpringBootTest#properties注解属性

    4) 命令行参数

    5) SPRING_APPLICATION_JSON中的属性(在环境变量或系统属性中内嵌的JSON)

    6) ServletConfig初始化参数

    7) ServletContext初始化参数

    8) java:comp/env中的JNDI属性

    9) Java系统属性,即System.getProperties()

    10) 操作系统环境变量

    11) RandomValuePropertySource, 仅在random.*中有属性

    12) jar包外的Profile-specific应用属性,如application-(profile).properties和YAML变体

    13) jar包内的Profile-specific应用属性,如application.properties和YAML变体

    14) jar包外的应用属性,如application.properties和YAML变体

    15) jar包内的应用属性,如application.properties和YAML变体

    16) 在@Configuration类中的@PropertySource注解

    17) 默认属性(通过SpringApplication.setDefaultProperties指定)

    例:假设开发@Component并使用一个name属性:

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyBean {
    	@Value("${name}")
    	private String name;
    }
    View Code

    在应用的classpath(例如,在jar包)中,application.properties文件提供一个默认属性值name。当在一个新的环境中运行时,application.properties文件可以在jar包外提供,进而替代jar包中的name。为了一次性测试,可以以指定命令行运行,如java –jar app.jar --name="Spring"

  • 相关阅读:
    网口 光口 电口都是接什么的?
    webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
    webService学习之路(二):springMVC集成CXF快速发布webService
    全国计算机技术与软件专业技术资格(水平)考试网上报名平台
    Axis2创建WebService实例
    使用axis2构建webservice
    JavaSE----API之集合(Collection、List及其子类、Set及其子类、JDK1.5新特性)
    SGU
    REST技术第四步 多个參数注解问题
    深入源代码解析Android中的Handler,Message,MessageQueue,Looper
  • 原文地址:https://www.cnblogs.com/mengrennwpu/p/8099119.html
Copyright © 2020-2023  润新知