SpringIOC框架详解
1、SpringIOC是什么?
就是一个用来管理实体类bean的容器
2、创建cppdy.xml文件(模拟springmvc.xml文件)
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="user1" class="com.cppdy.UserTest">
<property key="name" value="cppdy" />
<property key="sex" value="boy" />
</bean>
<bean id="user2" class="com.cppdy.UserTest">
<property key="name" value="吹泡泡的魚" />
<property key="sex" value="男" />
</bean>
</beans>
3、创建SpringIOCDemo类(模拟SpringIOC获取bean)
package com.cppdy; import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.List; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; class ApplicationResouceReader{
private String url; public ApplicationResouceReader(String url) {
this.url=url;
} public Object getBean(String id) throws Exception {
//获取到xml文件
InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream(url);
SAXReader saxReader = new SAXReader();
Document read = saxReader.read(resourceAsStream);
//解析xml,获取到beanId相同的节点
Element beans = read.getRootElement();
List<Element> beanList = beans.elements();
Element ele;
for (int i = 0; i < beanList.size(); i++) {
ele=beanList.get(i);
if(!ele.attributeValue("id").equals(id)) {
continue;
}
//拿到class全路径,方便之后反射
String beanClass=ele.attributeValue("class");
//反射出实体类
Class<?> forName = Class.forName(beanClass);
Object userInstance = forName.newInstance(); //获取当前符合id节点的属性列表
List<Element> attrsList = ele.elements();
//对属性进行赋值
for (int j = 0; j < attrsList.size(); j++) {
String key_zhi = attrsList.get(j).attributeValue("key");
Field declaredField = forName.getDeclaredField(key_zhi);
String value_zhi = attrsList.get(j).attributeValue("value");
declaredField.setAccessible(true);
declaredField.set(userInstance, value_zhi);
}
return userInstance;
}
return null;
}
} public class SpringIOCDemo { public static void main(String[] args) throws Exception {
ApplicationResouceReader arr=new ApplicationResouceReader("cppdy.xml");
UserTest bean = (UserTest) arr.getBean("user1");
System.out.println(bean.toString());
} }
SpringIOC框架详解的更多相关文章
- jQuery Validate验证框架详解
转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...
- mina框架详解
转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...
- lombok+slf4j+logback SLF4J和Logback日志框架详解
maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...
- [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解
Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂.Core Data 相关的类比较多,初学者往往不太容易弄懂.计划用三个教程来讲解这一部分: 框架详解 ...
- iOS 开发之照片框架详解(2)
一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLib ...
- Quartz.NET作业调度框架详解
Quartz.NET作业调度框架详解 http://www.cnblogs.com/lmule/archive/2010/08/28/1811042.html
- mapreduce框架详解
hadoop 学习笔记:mapreduce框架详解 开始聊mapreduce,mapreduce是hadoop的计算框架,我学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感 ...
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)
本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文<iOS ...
- iOS 开发之照片框架详解
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework.html 一. 概要 在 iOS 设备中,照片和视频是相当重 ...
随机推荐
- Python文件打包成exe
1. 安装pyinstaller pip install pyinstaller 2.如果有外部依赖包 将外部依赖包放到你的python安装的site-packages D:\Python27\Lib ...
- ssm mysql 新增数据返回id
描述: 在ssm项目中,新增一条数据,返回该数据的数据库id(主键) 实现方法: 1.xml 增加 useGeneratedKeys="true" keyProperty=&qu ...
- iframe标签
转载文章:Web前端之iframe详解 iframe基本内涵 通常我们使用iframe直接在页面嵌套iframe标签指定src就可以了. <iframe src="demo_ifram ...
- Centos 04 基础系统优化命令
在Linux这个系统当中,几乎所有的硬件设备文件都在/dev这个目录内.举例来说,IDE介面的硬盘的文件名称即为/dev/hd[a-d],其中, 括号内的字母为a-d当中的任意一个,亦即有/dev/h ...
- 在已有的Java项目中使用Kotlin
需要配置两个地方首先在项目点gradle文件中引入Kotlin插件 然后在module的build.gradle文件中应用插件
- 《SSH网上商城》-视频目录--代码可以跑起来
本课程是2015年2月份的,就是14年底的. 课程第一天的代码-添加 jsp-api.jar servlet-api.jar就可以跑起来,环境 JDK1.7 和tomcat8, SSH网上商城\S ...
- java json 转换
1.直接输出: 2.字符串 通过eval转换输出,里面涉及到一个转义问题,还要注意eval的用法里面需要加"("+ + ")" 3.
- Django中模板语音变量forloop
forloop.counter 从1开始 forloop.counter0 从0开始 forloop.revcounter 倒序(表示循环中剩余项的整型变量.) forloop.revcount ...
- Python 面向对象【1】
对象 = 属性 + 方法 面向对象特征:分装 继承 多态[不同对象对同一方法响应不同行动] 类定义 class xxx: .... .... 类对象 类对象支持两种操作:属性引用和实例化 ...
- 统计分析与R软件-chapter2-6
2.6 列表与数据框 2.6.1 列表 1.列表的构造 列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型,元素本身允许是其他复杂数据类型, ...