千家信息网

Spring中怎么使用Properties

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Spring中怎么使用Properties",在日常操作中,相信很多人在Spring中怎么使用Properties问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2026年11月02日Spring中怎么使用Properties

这篇文章主要介绍"Spring中怎么使用Properties",在日常操作中,相信很多人在Spring中怎么使用Properties问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Spring中怎么使用Properties"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Properties 的使用

本文的读者都是使用过 Spring 的,先来看看 Properties 是怎么使用的,Spring 中常用的有以下几种使用方式:

1. 在 xml 配置文件中使用

即自动替换 ${} 里面的值。

2. 通过 @Value 注入使用

@Value("${javadoop.jdbc.url}")

private String url;

3. 通过 Environment 获取

此法有需要注意的地方。并不是所有的配置方式都支持通过 Environment 接口来获取属性值,亲测只有使用注解 @PropertySource 的时候可以用,否则会得到 null,至于怎么配置,下面马上就会说。

@Autowired

private Environment env;

public String getUrl() {

return env.getProperty("javadoop.jdbc.url");

}

如果是 Spring Boot 的 application.properties 注册的,那也是可以的。

Properties 配置

前面我们说了怎么使用我们配置的 Properties,那么该怎么配置呢?Spring 提供了很多种配置方式。

1. 通过 xml 配置

下面这个是最常用的配置方式了,很多项目都是这么写的:

1

2. 通过 @PropertySource 配置

前面的通过 xml 配置非常常用,但是如果你也有一种要消灭所有 xml 配置文件的冲动的话,你应该使用以下方式:

@PropertySource("classpath:sys.properties")

@Configuration

public class JavaDoopConfig {

}

注意一点,@PropertySource 在这里必须搭配 @Configuration 来使用,具体不展开说了。

3. PropertyPlaceholderConfigurer

如果读者见过这个,也不必觉得奇怪,在 Spring 3.1 之前,经常就是这么使用的:

classpath:sys.properties

当然,我们也可以用相应的 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;

}

4. PropertySourcesPlaceholderConfigurer

到了 Spring 3.1 的时候,引入了 PropertySourcesPlaceholderConfigurer,这是一个新的类,注意看和之前的 PropertyPlaceholderConfigurer 在名字上多了一个 Sources,所属的包也不一样,它在 Spring-Context 包中。

在配置上倒是没有什么区别:

classpath:sys.properties

也来一个 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;

}

Spring Boot 相关

Spring Boot 真的是好东西,开箱即用的感觉实在是太好了。这里简单介绍下相关的内容。

快速生成一个 Spring Boot 项目:https://start.spring.io/

application.properties

我们每个项目都默认有一个 application.properties 文件,这个配置文件不需要像前面说的那样进行注册,Spring Boot 会帮我们自动注册。

当然,也许你想换个名字也是可以的,在启动的时候指定你的文件名字就可以了:

1java -Dspring.config.location=classpath:sys.properties -jar app.jar

application-{env}.properties

为了给不同的环境指定不同的配置,我们会用到这个。

比如测试环境和生产环境的数据库连接信息就不一样。

所以,在 application.properties 的基础上,我们还需要新建 application-dev.properties 和 application-prd.properties,用于配置环境相关的信息,然后启动的时候指定环境。

1java -Dspring.profiles.active=prd -jar app.jar

结果就是,application.properties 和 application-prd.properties 两个文件中的配置都会注册进去,如果有重复的 key,application-prd.properties 文件中的优先级较高。

@ConfigurationProperties

这个注解是 Spring Boot 中才有的。

即使大家不使用这个注解,大家也可能会在开源项目中看到这个,这里简单介绍下。

来一个例子直观一些。按照之前说的,在配置文件中填入下面的信息,你可以选择写入 application.properties 也可以用第一节介绍的方法。

javadoop.database.url=jdbc:mysql:

javadoop.database.username=admin

javadoop.database.password=admin123456

java 文件:

@Configuration

@ConfigurationProperties(prefix = "javadoop.database")

public class DataBase {

String url;

String username;

String password;

// getters and setters

}

这样,就在 Spring 的容器中就自动注册了一个类型为 DataBase 的 bean 了,而且属性都已经 set 好了。

在启动过程中动态修改属性值

这个我觉得都不需要太多介绍,用 Spring Boot 的应该基本上都知道。

属性配置有个覆盖顺序,也就是当出现相同的 key 的时候,以哪里的值为准。

启动参数 > application-{env}.properties > application.properties

启动参数动态设置属性:

1java -Djavadoop.database.password=admin4321 -jar app.jar

另外,还可以利用系统环境变量设置属性,还可以指定随机数等等,确实很灵活,不过没什么用,就不介绍了。

到此,关于"Spring中怎么使用Properties"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

配置 文件 属性 环境 方式 时候 项目 学习 信息 名字 常用 注解 不同 动态 参数 就是 方法 更多 版本 读者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 互联网科技公司的优势 互联网下的科技发展 互联网科技公司发展 狮子座互联网科技有限公司 天津摩尔互联网科技 兼蜜互联网科技 深圳艾佳互联网科技 亿人帮互联网科技 衡水科技产业互联网平台 卫星互联网科技股票 成都玖崟互联网科技有限公司乐商圈怎么样 成都互联网科技公司100强 呼和浩特新华互联网科技学院 如何创新互联网科技 互联网科技如何创业 徐州市互联网科技有限公司 小米互联网科技园入驻 工业互联网科技成果转化 互联网科技创业计划的风险分析 互联网科技公司经营范围 亿账通互联网科技 国外互联网科技网站 海南科技产业互联网平台 栖莱科技互联网股份有限公司 湖北码尼互联网科技有限公司电话 荆州市昕露互联网络科技有限公司 互联网科技扶贫时间 翼展科技 首家互联网医院 广西泛欧互联网科技有限公司
0