- 浏览: 2831548 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (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 766Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 12831. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 824JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1106JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 710class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 718在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14061. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 696//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 12941. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 616package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1422官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7361. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 890private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 855Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8581. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1270@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 925有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1697Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1844Source-Navigator是原来redhat开发的一个 ...
相关推荐
知识共享-Spring注入属性值案例(雷惊风).
主要介绍了结合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
spring练习 刚刚学spring,做了个小小小项目,来加深理解。... ·其他依赖注入属性,都使用property 元素确定参数值。 Person.java PersonFactory.java Chinese.java American.java bean.xml SpringTest.java
spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...
主要介绍了Spring中利用配置文件和@value注入属性值代码详解,代码中注释比较详细,具有一定参考价值,需要的朋友可以了解下。
文章目录一、概念和历史二、hellospring三、IOC创建对象的方式四、Spring配置五、set注入–属性注入六、c命名和p命名空间注入七 、bean的作用域 一、概念和历史 Spring的形成,最初来自Rod Jahnson所著的一本很有...
1.12 如何为spring代理类设置属性值 1.13 我对SpringDAO层支持的总结 1.14 我对SpringDAO层支持的总结 1.15 我对SpringDAO层支持的总结 1.16 我对Spring 容器管理事务支持的总结 1.17 我对Spring 容器管理事务支持的...
Spring中注入属性值细节、自动装配、bean之间的关系、bean的作用域、使用外部属性文件、SpEL、IOC容器中Bean 的生命周期、泛型依赖注入。
使用对象或类的属性值进行注入 4.3.5.2.使用字段值进行注入 4.3.5.3.使用方法的返回值进行注入 4.3.6.IFactoryObject接口的其它实现 4.3.6.1.Log4Net 4.3.7.使用depends-on 4.3.8.自动装配协作对象 4.3.9.检查依赖项...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...
Spring注入基本值,Spring注入集合和数组,利用Spring初始化数据库连接池,Spring 表达式读取对象(Bean、数组、Map、Properties)的属性值,bean的注入方式等。
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...
基于Spring的Web项目,涉及的要点、servlet的注入和使用,spring上下文对象的获得和使用,以及配置属性文件properties中属性值的获得,最后通过前台首页显示,实现文件的上传和下载
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 ...
5.4 引用Bean的属性值 5.5 国际化信息 5.5.1 基础知识 5.5.2 MessageSource 5.5.3 容器级的国际化信息资源 5.6 容器事件 5.6.1 Spring事件类结构 5.6.2 解构Spring事件体系的具体实现 5.6.3 一个实例 5.7 小结 第6章...
t.InvokeMember(prop.propertyName, ........BindingFlags.SetProperty, null, o, new Object[] {p})利用反射机制对创建出来的对象设置属性值。 我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @...
spring中属性注入,可以将值卸载property文件中然后读取
(2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean class="xxx" ></bean> (4)constructor:与 ...