`

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

 
阅读更多
转自 http://blog.csdn.net/csujiangyu/article/details/50945486

场景

假如有以下属性文件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>
1
2
3
1
2
3
代码:

@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;

 

分享到:
评论

相关推荐

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

    本文将详细介绍通过`@Value`注解注入属性的几种常见方式。 ### 1. 基于属性文件注入 #### 1.1 `PropertyPlaceholderConfigurer` 当需要从属性文件(如`dev.properties`)中读取值时,可以使用`...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    spring注解笔记

    当使用@Resource或@Autowired注解注入Spring管理的Bean时,需要注意注入变量的类型必须与要注入的Bean类型或其父类类型匹配。否则,Spring将无法完成注入过程,因为类型不一致会导致注入失败。 总结来说,Spring...

    Spring定义bean的三种方式和自动注入

    同时,可以通过`@Value`或`@Autowired`注解进行属性注入。 ```java @Component("teacher") public class Teacher { private String name; // ... } @Component public class Student { private String ...

    spring依赖注入的几种方式

    Spring 依赖注入的几种方式 依赖注入(Dependency Injection,简称 DI)是一种设计模式,它可以将对象之间的耦合关系降到最低,从而提高系统的灵活性和可维护性。在 Spring 框架中,依赖注入是通过 IoC 容器来实现...

    spring注解完整版[定义].pdf

    在Spring框架中,注解是实现Inversion of Control(IoC)或依赖注入(DI)的一种强大工具。Spring 2.5引入了@Autowired注解,它极大地简化了配置,允许开发者在不编写XML配置文件的情况下完成bean的自动装配。本文将...

    Spring通过注解实现IOC

    在Spring中,主要通过以下几种注解来实现IOC: 1. `@Component`:这是最基础的注解,用于标记一个类为Spring的Bean。将这个注解添加到类上,Spring就会自动扫描并管理这个类的实例。例如: ```java @Component ...

    Spring中你不知道的注入方式编程开发技术共6页.pdf

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它极大地提高了代码的可测试性和可维护性。本资料“Spring中你不知道的注入方式编程开发技术共6页.pdf”深入探讨了一些不常见但...

    Spring通过配置文件和注解实现属性赋值

    对于通过注解的方式实现属性赋值,Spring提供了`@Value`注解来简化操作。首先,通过`@PropertySource`注解来加载外部配置文件,配置文件中的键值对会被保存到运行环境变量中。之后,可以使用`${}`从环境变量中取出...

    SpringCloud实用篇02

    Nacos配置管理是SpringCloud中的一种配置管理方式,能够提供统一的配置管理、配置热更新、配置共享等功能。在Nacos中添加配置信息可以通过在Nacos中添加配置文件实现,配置文件可以是.properties或.yaml格式。 统一...

    Springioc注入Demo

    在Spring IOC中,主要的注入方式有以下几种: 1. **构造器注入**:通过构造函数传递依赖对象,Spring容器会根据构造函数的参数类型创建并注入相应的对象。这种方式确保对象在创建时就具备所有依赖,增强了对象的...

    Spring注解驱动开发实现属性赋值

    在Spring注解驱动开发中,@Value注解实际上是通过注入一个PropertyPlaceholderConfigurer类型的bean实现的。当应用程序上下文启动时,该bean会负责加载指定的属性文件,并将它们作为环境变量保存起来,之后就可以...

    Spring在代码中获取bean的几种方式.rar

    以下将详细介绍Spring在代码中获取bean的几种主要方法: 1. **`ApplicationContext` 接口** `ApplicationContext` 是Spring中最常用的接口之一,它提供了获取Bean的多种方法。例如,`getBean(String beanName)` ...

    Struts2+spring注解配置

    Spring 使用注解配置主要是为了简化 Bean 的定义,包括但不限于以下几种: 1. `@Component`, `@Service`, `@Repository`, `@Controller` 这些注解用于标记组件类,它们分别对应不同的服务层角色,Spring 会自动扫描...

    spring jersey整合后无法注入

    当Spring与Jersey整合时,我们通常会遇到以下几种常见问题: 1. **未正确配置Spring上下文**:确保在你的项目中包含Spring的上下文配置文件,如`applicationContext.xml`,并且在这个配置文件中声明了你需要注入的...

    Spring与IoC系列四:基于注解的依赖注入.rar

    4. `@Value`:用于注入基本类型的值或者从Spring的属性配置文件中注入值。 5. `@Scope`:用于定义Bean的作用域,如单例(`singleton`)、原型(`prototype`)等。 6. `@PostConstruct` 和 `@PreDestroy`:这两个...

    spring整合数据库连接的几种方式

    - 在Spring中注入并使用DBCP连接池,可以通过@Autowired注解或JdbcTemplate来实现。 2. **C3P0** - C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 - C3P0的优势在于...

    Spring如何注入Date类型的变量

    以上是几种在Spring中注入Date类型变量的方法。根据实际项目需求和设计,选择最适合的方式。在阅读提供的PDF文档"Spring – How to pass a Date into bean property"时,你将能深入理解这些方法的实现细节和适用场景...

Global site tag (gtag.js) - Google Analytics