详解Spring通过@Value注解注入属性的几种方式

 更新时间:2017年03月31日 15:12:30   作者:Ydoing  
本篇文章主要介绍了详解Spring通过@Value注解注入属性的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

场景

假如有以下属性文件dev.properties, 需要注入下面的tag

tag=123

通过PropertyPlaceholderConfigurer

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="dev.properties" />
</bean>

代码

@Value("${tag}")
private String tag;

通过PreferencesPlaceholderConfigurer

<bean id="appConfig" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
  <property name="location" value="dev.properties" />
</bean>

代码:

@Value("${tag}")
private String tag;

通过PropertiesFactoryBean

  <bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="location" value="dev.properties" />
  </bean>

代码:

@Value("#{config['tag']}")
private String tag;

通过util:properties

效果同PropertiesFactoryBean一样

代码:

@Value("#{config['tag']}")
private String tag;

其他方式

有时也可以不通过文件,直接写字面量

<bean id="appConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <!--<property name="location" value="classpath:${env}.properties" />-->
  <property name="properties">
    <props>
      <prop key="tag">123</prop>
    </props>
  </property>
</bean>

代码:

@Value("${tag}")
private String tag;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaWeb核心技术中Session与Cookie浅析

    JavaWeb核心技术中Session与Cookie浅析

    session的工作原理和cookie非常类似,在cookie中存放一个sessionID,真实的数据存放在服务器端,客户端每次发送请求的时候带上sessionID,服务端根据sessionID进行数据的响应
    2023-02-02
  • Java异常处理实例教程

    Java异常处理实例教程

    这篇文章主要为大家分享一份非常详细的Java异常处理实例教程,帮助大家更好的学习java异常处理,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Spring如何基于Proxy及cglib实现动态代理

    Spring如何基于Proxy及cglib实现动态代理

    这篇文章主要介绍了Spring如何基于Proxy及cglib实现动态代理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 导入项目出现Java多个工程相互引用异常A cycle was detected in the build path of project的解决办法

    导入项目出现Java多个工程相互引用异常A cycle was detected in the build path o

    今天小编就为大家分享一篇关于导入项目出现Java多个工程相互引用异常A cycle was detected in the build path of project的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java中EnumMap的使用解析

    Java中EnumMap的使用解析

    这篇文章主要介绍了Java中EnumMap的使用解析,EnumMap 是一种特殊的 Map,它要求自身所有的键来自某个枚举类型,EnumMap 的内部可以作为一个数组来实现,因此它们的性能非常好,你可以放心地用 EnumMap 来实现基于枚举的查询,需要的朋友可以参考下
    2023-11-11
  • Java中try、catch的使用方法

    Java中try、catch的使用方法

    这篇文章主要介绍了Java中try、catch的使用方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 手写java性能测试框架第二版

    手写java性能测试框架第二版

    这篇文章主要为大家介绍了手写java性能测试框架第二版实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 浅谈String类型等值比较引起的“==”、“equals()”和“hashCode”思考

    浅谈String类型等值比较引起的“==”、“equals()”和“hashCode”思考

    这篇文章主要介绍了浅谈String类型等值比较引起的“==”、“equals()”和“hashCode”思考。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • SpringBoot配置Spring Security的实现示例

    SpringBoot配置Spring Security的实现示例

    本文主要介绍了SpringBoot配置Spring Security的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 如何使用 Spring Boot 和 Canal 实现 MySQL 数据库同步

    如何使用 Spring Boot 和 Canal 实现 My

    本文介绍了如何使用SpringBoot和Canal实现MySQL数据库之间的数据同步,通过配置主库、创建Canal用户、配置CanalServer以及开发SpringBoot客户端,实现了将主库的数据实时同步到多个从库,感兴趣的朋友跟随小编一起看看吧
    2025-02-02

最新评论