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 设备中,照片和视频是相当重 ...
随机推荐
- 牛客 被3整除的子序列dp
题意很清楚,直接dp即可,dp[i][j]表示到第i个字符的状态为j的方案数,这里状态指的是子序列最大下标到第i直接dp即可,dp[i][j]表示到第i个字符的状态为j的方案数,这里状态指的是子序列最 ...
- WIN10配置MongoDB
WIN10配置MongoDB 1. 下载 [MongoDB 官网下载链接](https://www.mongodb.com/download-center?jmp=nav#community) 2. ...
- 【tmos】创建自定义400、500页面
解决方案
- centos 6.8下载地址
centos6.8校验码查询网站:https://wiki.centos.org/zh-tw/Manuals/ReleaseNotes/CentOS6.8 CentOS 6.8 64位DVD 种子下载 ...
- Maven项目在更新过程停止,再更新无效-->解决
---类似网友问题:但我按照这样无法解决. eclipse中maven项目jar包不会自动下载解决办法 - wavemelody - 博客园http://www.cnblogs.com/mymelod ...
- nginx基础命令
1.nginx 启动nginx service nginx start 查看nginx状态 service nginx status 关闭nginx service nginx stop 热重启(前提 ...
- 查看oracle 用户执行的sql语句历史记录
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
- 数据库无法启动ORA-01034: ORACLE not available
错误场景: 1.数据库未启动,查询v$instance报错 SQL> select status from v$instance; select status from v$instance * ...
- Direct Shot Correspondence Matching
一篇BMVC18的论文,关于semantic keypoints matching.dense matching的工作,感觉比纯patch matching有意思,记录一下. 1. 摘要 提出一种针对 ...
- k64 datasheet学习笔记52---Universal Asynchronous Receiver/Transmitter (UART)
1.前言 UART实现与外设或CPU的通信 2. UART概述 2.1基本特性 (1)Full-duplex operation (2)Standard mark/space non-return-t ...