Spring注入的反射解释
对于如下配置片段:
- <bean id="id" class="lee.Aclass">
- <!--property配置需要依赖注入的属性-->
- <property name="aaa" value="aVal"/>
- <property name="bbb" value="bVal"/>
- ...
- </bean>
Spring将会为每个bean元素创建一个Java对象(即bean实例)。而Spring将采用类似于如下的代码创建Java实例。
- //获取lee.AClass类的Class对象
- Class targetClass = Class.forName("lee.AClass");
- //创建Lee.AClass类的默认实例
- Object bean = targetClass.newInstance();
创建实例后,Spring接着遍历bean元素中所有的property子元素,bean元素没包含一个property子元素,spring将为该bean实例调用一次setter方法。
类似如下代码:
- //获取aaa的属性对应的setter方法名
- String _setName1 = "set" +"Aaa";
- /获取lee.Class类中的setAaa()方法
- Method setMethod1 = targetClass.getMethod(setName1,aVal.getClass());
- //调用bean实例的setAaa()方法
- setMethod1.invoke(bean,aVal);
通过上述代码,Spring就可以根据配置文件的信息来创建Java实例。并将为该Java实例注入合理的属性值。
Spring注入的反射解释的更多相关文章
- Spring IOC源代码具体解释之容器依赖注入
Spring IOC源代码具体解释之容器依赖注入 上一篇博客中介绍了IOC容器的初始化.通过源代码分析大致了解了IOC容器初始化的一些知识.先简单回想下上篇的内容 加载bean定义文件的过程.这个过程 ...
- Spring注入JPA+JPA事务管理
本例实现的是Spring注入JPA 和 使用JPA事务管理.JPA是sun公司开发的一项新的规范标准.在本质上来说,JPA可以看作是Hibernate的一个子集:然而从功能上来说,Hibernate是 ...
- FlushMode属性与transaction(spring注入的事务)
一.参见hibernate的api http://tool.oschina.net/apidocs/apidoc?api=hibernate-3.6.10 http://tool.oschina.ne ...
- JSP中使用Spring注入的Bean时需要注意的地方
遇到问题 遇到一个问题:在JSP中,使用Spring注入的Bean对象时,未能正确地获取到想要的对象. 郁闷的是,它也没报错. 研究问题 使用DEBUG功能(好久不在JSP里写Java代码了,都忘了J ...
- 监听器中spring注入相关的问题
问题描述: 需求是要求在项目启动自动触发一个service中的线程的操作,使用监听器来实现,但是自定义监听器中spring注解service失败,通过WebApplicationContextUtil ...
- Spring IOC源代码具体解释之容器初始化
Spring IOC源代码具体解释之容器初始化 上篇介绍了Spring IOC的大致体系类图,先来看一段简短的代码,使用IOC比較典型的代码 ClassPathResource res = new C ...
- Spring 中的反射与反射的原理
作者:DeppWang.原文地址 在造轮子:实现一个简易的 Spring IoC 容器一文中提到 Spring 在创建 Bean 实例和依赖注入时使用了反射,本文来具体分析一下 Spring 中的反射 ...
- spring javabean以及反射机制
spring是一个管理java对象的一个容器,注入到容器中的对象称之为javabean: spring配置的bean,配置的不是bean而是实例. 反射机制:一个类中的方法,属性等都可以获取本类然后获 ...
- Spring注入中byType和byName的总结
1.首先,区分清楚什么是byType,什么是byName. <bean id="userServiceImpl" class="cn.com.bochy.servi ...
随机推荐
- ASCII\UNICODE编码的区别
前几天,Google给我Hotmail邮箱发了封确认信.我看不懂,不是因为我英文不行,而是"???? ????? ??? ????"的内容让我不知所措.有好多程序员处理不好编码问题 ...
- 5.内网渗透之PTH&PTT&PTK
---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-t ...
- 十三周作业—使用Metaspoit攻击MS08-067
操作过程及结果如下:
- VB.NET提取TXT文档指定内容
今天有浏览论坛时,又看见一篇是读取TXT文本文件的论题.Insus.NET也想以自己的想法来实现,并分享于此. 文本文件是比较复杂,获取数据也是一些文本行中取其中一部分.为了能够取到较精准的数据,In ...
- 与HDFS交互- By web界面
开启方式 linux系统 eg :ubuntu 浏览器 eg:firefox HDFS的web管理界面地址:localhost:50070/ 具体理解有待后续学习....
- python logging日志库
项目中使用的日志库是使用python官方库logging封装的,但是居然一直么有设置日志自动滚动,经常会受到告警说哪台机器磁盘空间又满,清理一下,于是研究一下,解决这个问题. 参考:https://d ...
- Codeforces Round #533 (Div. 2) 部分题解A~D
A. Salem and Sticks 题目描述 Salem gave you n n n sticks with integer positive lengths a1,a2,…,an a_1, a ...
- NOIp 2018 货币系统 贪心
题目描述 在网友的国度中共有 nnn 种不同面额的货币,第 iii 种货币的面额为 a[i]a[i]a[i],你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 nnn.面额数组为 a[1. ...
- BestCoder Round #80 待填坑
Lucky Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699
题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连 ...