Spring中的Properties

简介: Properties 注入通过 xml 配置通过 @PropertySource 配置PropertyPlaceholderConfigurerPropertySourcesPlaceholderConfigurerProperties 的使用在 xml 配置文件中使用通过 @Value 注入使用通过 Environment 获取通过 application.

Properties 注入

  • 通过 xml 配置
  • 通过 @PropertySource 配置
  • PropertyPlaceholderConfigurer
  • PropertySourcesPlaceholderConfigurer

Properties 的使用

  • 在 xml 配置文件中使用
  • 通过 @Value 注入使用
  • 通过 Environment 获取
  • 通过 application.properties 获取

Spring Boot 相关

  • @ConfigurationProperties
  • 配置优先级

Properties 配置

通过 xml 配置

<context:property-placeholder location="classpath:sys.properties" />

通过 @PropertySource 配置

@PropertySource("classpath:sys.properties")
@Configuration
public class DemoConfig {

}

@PropertySource 在这里必须搭配 @Configuration 来使用。

PropertyPlaceholderConfigurer

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:sys.properties</value>
        </list>
    </property>
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
      <!-- 这里可以配置一些属性 -->
</bean>  

 java configuration 版本

@Bean
public PropertyPlaceholderConfigurer propertiess() {
    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
    Resource[] resources = new ClassPathResource[]{new ClassPathResource("sys.properties")};
    ppc.setLocations(resources);
    ppc.setIgnoreUnresolvablePlaceholders(true);
    return ppc;
}

PropertySourcesPlaceholderConfigurer

<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:sys.properties</value>
        </list>
    </property>
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
    <!-- 这里可以配置一些属性 -->
</bean>

 java configuration 版本

@Bean
public PropertySourcesPlaceholderConfigurer properties() {
    PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
    Resource[] resources = new ClassPathResource[]{new ClassPathResource("sys.properties")};
    pspc.setLocations(resources);
    pspc.setIgnoreUnresolvablePlaceholders(true);
    return pspc;
}

Properties 的使用

在 xml 配置文件中使用

<bean id="xxx" class="com.demo.Xxx">
      <property name="url" value="${mysql.jdbc.url}" />
</bean>

通过 @Value 注入使用

@Value("${demo.jdbc.url}")
private String url;

通过 Environment 获取

只有使用注解 @PropertySource 的时候可以用,否则会得到 null。

@Autowired
private Environment env;

public String getUrl() {
    return env.getProperty("demo.jdbc.url");
}  

通过 application.properties 获取 

demo.database.url=jdbc:mysql:  

Spring Boot 相关

@ConfigurationProperties

application.properties

demo.db.url=jdbc:mysql:
demo.db.username=test
demo.db.password=123456

@Configuration
@ConfigurationProperties(prefix = "demo.db")
@Data
public class DataBase {
    String url;
    String username;
    String password;
}

配置优先级

java -Dspring.profiles.active=env -jar app.jar

如果存在这两个文件,application.propertiesapplication-env.properties ,则两个文件中的配置都会注册进去,如果有重复的 key,application-env.properties 文件中的优先级较高。总结:启动参数 > application-{env}.properties > application.properties

  

目录
相关文章
|
XML JavaScript 前端开发
【Java】Spring Boot中的配置properties 和 yml 的区别
【Java】Spring Boot中的配置properties 和 yml 的区别
|
5月前
|
设计模式 Java 关系型数据库
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
|
druid Java
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource:
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource:
812 0
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource:
|
6月前
|
IDE Java 开发工具
灵活配置 Spring 集合:List、Set、Map、Properties 详解
使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean
122 1
|
6月前
|
XML Java 数据格式
Spring Boot原理分析 | SpringApplication、Yaml、Properties
Spring Boot原理分析 | SpringApplication、Yaml、Properties
73 0
|
6月前
|
druid Java 关系型数据库
Spring案例:数据源对象管理及加载properties文件
Spring案例:数据源对象管理及加载properties文件
70 0
|
6月前
Spring-数组、List、Set、Map、Properties依赖注入格式
Spring-数组、List、Set、Map、Properties依赖注入格式
45 0
|
XML druid Java
Spring | 数据源对象 properties文件 创建容器和获取bean 容器总结
Spring | 数据源对象 properties文件 创建容器和获取bean 容器总结
187 0
|
Java Spring
java202304java学习笔记第六十天-ssm-spring配置文件-spring加载properties文件2
java202304java学习笔记第六十天-ssm-spring配置文件-spring加载properties文件2
68 0