- 浏览: 2876846 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
实际应用中,某个实例的属性可能是另一个对象的一个属性,Spring支持将bean实例的属性值直接赋值给一个变量 属性值的注入,是通过PropertyPathFactoryBean完成的,PropertyPathFactoryBean用来获取目标bean的属性,获得的值可以注入到其他bean,也可以定义成新的bean 实体类:
package Bean.superIOCparam; public class Person { private Son son; private String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Son getSon() { return son; } public void setSon(Son son) { this.son = son; } } package Bean.superIOCparam; public class Son { private String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
配置文件:提供四种注入
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="person" class="Bean.superIOCparam.Person" singleton="false"> <property name="age"> <value>30</value> </property> <property name="son"> <bean class="Bean.superIOCparam.Son"> <property name="age"> <value>16</value> </property> </bean> </property> </bean> <!--如下将会将person的属性son的属性age传入son1实例的age属性--> <bean id="son1" class="Bean.superIOCparam.Son"> <property name="age"> <!--以下是访问bean属性的简单方式,这样可以将person这个bean的age属性赋值给son1这个bean的age属性--> <bean id="person.son.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/> </property> </bean> <!-- 以下将会获得结果son,它将是person bean的son的数值--> <bean id="son2" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"> <property name="targetBeanName"> <value>person</value> </property> <property name="propertyPath"> <value>son</value> </property> </bean> <!-- 以下将会获得结果16,它将是person bean的son的age属性--> <bean id="son3" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"> <property name="targetBeanName"> <value>person</value> </property> <property name="propertyPath"> <value>son.age</value> </property> </bean> <!-- 以下会获得结果为30 ,它将是获得该bean的内部bean的age属性--> <bean id="son4" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"> <property name="targetObject"> <bean class="Bean.superIOCparam.Person"> <property name="age"><value>30</value></property> </bean> </property> <property name="propertyPath"><value>age</value></property> </bean> </beans>
测试代码:
public static void main(String[] args) throws Exception { String path=new Test().getClass().getResource("/").getPath(); String realpath=path.substring(1, path.length()); ApplicationContext context=new FileSystemXmlApplicationContext(realpath+"/superIOCparam.xml"); Son son1=(Son)context.getBean("son1"); Son son2=(Son)context.getBean("son2"); System.out.println("person age is:"+son1.getAge()); System.out.println("person age is:"+son2.getAge()); System.out.println(context.getBean("son3")); System.out.println(context.getBean("son4")); }
运行结果: person age is:16
person age is:16
16
30
发表评论
-
高级Java程序员值得拥有的10本书
2015-05-04 07:24 814Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 13321. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 870JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1145JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 752class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 763在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14411. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 726//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 13271. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 663package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1471官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7751. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 923private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 890Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8931. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1326@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 968有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1735Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1898Source-Navigator是原来redhat开发的一个 ...
相关推荐
### Spring框架中的属性值注入详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序。它提供了全面的基础架构支持,包括依赖注入(Dependency Injection, DI)、面向切面编程...
在Spring框架中,设值注入(Value Injection)是一种将外部属性值注入到bean对象中的方法。它是通过在bean的配置元数据中定义属性值来实现的,这些值会在bean实例化时自动设置。设值注入是Spring依赖注入...
在Spring框架中,属性注入是核心特性之一,它允许我们通过依赖注入(Dependency Injection, DI)来管理对象的属性,而不是让对象自行创建或查找它们的依赖。这有助于提高代码的可测试性、可维护性和解耦性。下面将...
在Spring Boot应用中,`@Value`注解是用于注入属性值的重要工具,它可以方便地从配置文件或者非配置文件中获取数据,并将其赋值给字段或者方法参数。本篇文章将详细阐述`@Value`注解的使用方法,包括如何注入配置...
在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...
然后,在Spring的配置文件中,定义bean并指定其属性值。例如,如果你有一个`UserService`类需要注入`UserRepository`,在XML配置文件中可以这样写: ```xml ``` 在`UserService`类中,你需要有如下的...
在Spring框架中,属性注入是将外部配置的属性值注入到Bean对象中,使得对象可以在运行时根据配置动态地获取其依赖的属性。本篇学习笔记主要探讨了Spring中的属性注入方式,包括了传统的XML配置注入、注解式注入以及...
在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...
1. **BeanDefinition**:这是Spring中描述bean定义的接口,包含了bean的所有元数据,如类名、属性值等。这些信息在解析bean定义时被加载到`DefaultListableBeanFactory`中。 2. **InstantiationStrategy**:用于...
属性注入是指Spring容器将一个对象的属性值设置为另一个对象的引用。这通常用于将服务对象注入到需要使用它们的客户端对象中。在Spring中,有两种主要的属性注入方式:setter方法注入和构造器注入。 1. Setter方法...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean的属性值,从而实现对象的依赖管理。在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨...
Spring还提供了多种注入方式,如`属性值注入`、`引用注入`(注入其他Bean)等。 ### 名称空间p Spring的名称空间`p`是为简化属性注入而设计的一种XML配置语法糖。在传统的XML配置中,我们通常使用`<property>`标签...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...
设值注入,也称为属性注入,是通过setter方法来注入依赖。当对象已经创建,但还需要添加或修改依赖时,这种方式非常适用。 ```java public class UserService { private UserRepository userRepository; public ...
在使用 @Autowired 之前,我们对一个 bean 配置起属性时,是使用 属性名" value=" 属性值"/> 的方式来配置,比较繁琐,而且代码比较多。在 Spring 2.5 引入了 @Autowired 注释,我们平常直接引用的时候很少注意这些...
通过属性注入,可以将一个Bean的某些属性值或者引用其他Bean实例的值注入到当前Bean中。这种方式极大地提高了系统的灵活性和可维护性。 #### 文档概览 本文档主要介绍了在Spring配置文件中如何进行各种类型的属性...
在Spring中,属性注入(Property Injection)是一种重要的功能,它允许开发者在不直接创建对象的情况下设置对象的属性,从而实现了松耦合和更好的可测试性。 **XML方式的属性注入** 1. **Set注入**:这是Spring ...
Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口注入 接口注入是指通过接口...
总结来说,Spring通过XML配置进行Bean的值注入,特别是集合类型的注入,能够灵活地管理对象间的依赖关系。这种方式使得代码更易于测试和维护,同时也降低了组件之间的耦合度。在实际开发中,可以根据项目需求选择...
设值注入是通过调用对象的setter方法来设置属性值,而构造器注入则是在对象实例化时通过构造函数传递参数。 二、XML配置中的属性注入 在Spring的XML配置文件中,我们可以通过`<bean>`标签的`property`子标签来进行...