iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Properties怎么在Spring中使用
  • 359
分享到

Properties怎么在Spring中使用

2023-05-30 16:05:06 359人浏览 八月长安
摘要

Properties怎么在spring中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 在 xml 配置文件中使用即自动替换 ${} 里面的值。<bean&nbs

Properties怎么在spring中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1. 在 xml 配置文件中使用

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

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

2. 通过 @Value 注入使用

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

3. 通过 Environment 获取

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

@Autowiredprivate Environment env;public String getUrl() {  return env.getProperty("javadoop.jdbc.url");}

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

Properties 配置

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

1. 通过 xml 配置

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

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

2. 通过 @PropertySource 配置

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

@PropertySource("classpath:sys.properties")@Configurationpublic class JavaDoopConfig {}

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

3. PropertyPlaceholderConfigurer

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

<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 的版本:

@Beanpublic 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 包中。

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

<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 版本吧:

@Beanpublic 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 会帮我们 自动注册 。

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

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

application-{env}.properties

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

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

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

java -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=adminjavadoop.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

启动参数动态设置属性:

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

看完上述内容,你们掌握Properties怎么在Spring中使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Properties怎么在Spring中使用

本文链接: https://www.lsjlt.com/news/219841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Properties怎么在Spring中使用
    Properties怎么在Spring中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 在 xml 配置文件中使用即自动替换 ${} 里面的值。<bean&nbs...
    99+
    2023-05-30
  • Spring中怎么使用Properties
    这篇文章主要介绍“Spring中怎么使用Properties”,在日常操作中,相信很多人在Spring中怎么使用Properties问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • css(properties)怎么在jQuery中使用
    这篇文章将为大家详细讲解有关css(properties)怎么在jQuery中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。css的全称是什么css的全称是Cascading Style...
    99+
    2023-06-14
  • FactoryBean怎么在spring中使用
    FactoryBean怎么在spring中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从SessionFactory说起:在使用SSH集成开发的时候,我们有时候会在app...
    99+
    2023-05-30
    spring factorybean
  • Admin 怎么在Spring Boot中使用
    本篇文章为大家展示了Admin 怎么在Spring Boot中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、前言Spring Boot Admin 用于监控基于 Spring Boot 的应...
    99+
    2023-05-31
    springboot mi admin
  • r2dbc在Spring webFlux中怎么使用
    这篇文章主要介绍“r2dbc在Spring webFlux中怎么使用”,在日常操作中,相信很多人在r2dbc在Spring webFlux中怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”r2dbc在S...
    99+
    2023-06-29
  • java properties类怎么使用
    在Java中,可以通过Properties类来读取和写入属性文件。下面是Properties类的使用示例:1. 创建Properti...
    99+
    2023-09-20
    java
  • 怎么在Spring Boot中使用MQTT
    这篇文章给大家分享的是有关怎么在Spring Boot中使用MQTT的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为什么选择MQTTMQTT的定义相信很多人都能讲的头头是道,本文章也不讨论什么高大上的东西,旨在用...
    99+
    2023-06-14
  • 怎么在Spring Boot中使用MyBatis
    这篇文章将为大家详细讲解有关怎么在Spring Boot中使用MyBatis,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两...
    99+
    2023-05-31
    springboot mybatis
  • java中properties配置文件怎么使用
    在Java中,可以使用`java.util.Properties`类来读取和使用配置文件。首先,创建一个`Properties`对象...
    99+
    2023-09-17
    java properties
  • 怎么在java中使用Spring框架
    怎么在java中使用Spring框架?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
  • properties-maven-plugin插件怎么使用
    这篇“properties-maven-plugin插件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“propert...
    99+
    2023-06-26
  • Properties在MyBatis 中的作用是什么
    这篇文章将为大家详细讲解有关Properties在MyBatis 中的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、我们将 数据库的配置语句写在 db.propert...
    99+
    2023-05-31
    mybatis properties
  • Kafka和Storm怎么在Spring boot中使用
    这篇文章给大家介绍Kafka和Storm怎么在Spring boot中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用工具及环境配置 java 版本jdk-1.8 编译工具使用IDEA-2017 maven作为项...
    99+
    2023-05-30
  • @Around注解怎么在Spring AOP中使用
    这期内容当中小编将会给大家带来有关@Around注解怎么在Spring AOP中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。@Around注解可以用来在调用一个具体方法前和调用后来完成一些具体的任务...
    99+
    2023-06-06
  • PropertySource注解怎么在Spring boot中使用
    本篇文章给大家分享的是有关PropertySource注解怎么在Spring boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1. PropertySource...
    99+
    2023-05-30
    springboot propertysource
  • http请求怎么在spring boot中使用
    今天就跟大家聊聊有关http请求怎么在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先是经过封装:一:初始化httpclientprivate ...
    99+
    2023-05-30
    springboot http
  • SpringBoot中怎么使用Profile取代Properties文件
    在SpringBoot中,可以使用Profile来替代Properties文件的配置。Profile是一种灵活的方式,可以根据不同的...
    99+
    2024-03-07
    SpringBoot
  • 在Spring中使用Quartz
    在Spring中使用Quartz,需要进行以下步骤:1. 添加依赖:在项目的pom.xml文件中添加Quartz的依赖。```xml...
    99+
    2023-09-15
    Spring
  • 怎么在MyBatis中对properties进行配置
    本篇文章为大家展示了怎么在MyBatis中对properties进行配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,...
    99+
    2023-05-30
    mybatis properties
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作