通过实例模拟了spring读取配置文件的基本原理
读取xml文件 得到bean 通过java反射机制 返还相应类的实例
面向接口编程 new的是一个接口 不关心具体实现(在xml中决定具体实现类)
IOC DI
学会使用Junit进行单元测试
未完成 对于property属性set配置 模拟
对IOC更深入的了解
各文件代码
bean.xml
<beans> <bean id="u" class="com.bjsxt.dao.impl.UserDaoImpl"/> <bean id="userService" class="com.bjsxt.service.UserService"> <property name="userDao" bean="u"/> </bean> </beans>
User.java
package com.bjsxt.model; public class User { private String name; private String psd; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setPsd(String psd) { this.psd = psd; } public String getPsd() { return psd; } }
UserDao.java
package com.bjsxt.dao; import com.bjsxt.model.User; public interface UserDao { public void save(User u); }
UserDaoImpl.java
package com.bjsxt.dao.impl; import com.bjsxt.dao.UserDao; import com.bjsxt.model.User; public class UserDaoImpl implements UserDao { public void save(User u) { System.out.println("add u"); } }
UserService.java
package com.bjsxt.service; import com.bjsxt.dao.UserDao; import com.bjsxt.model.User; public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserDao getUserDao() { return userDao; } public void add(User u){ this.userDao.save(u); } }
BeanFactpry.java
package com.bjsxt.spring; public interface BeanFactory { public Object getBean(String name); }
ClassPathXmlApplication.java
package com.bjsxt.spring; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; public class ClassPathXmlApplication implements BeanFactory{ private Map<String,Object> beans = new HashMap<String,Object>(); public ClassPathXmlApplication() throws Exception{ SAXBuilder sb = new SAXBuilder(); System.out.println(this.getClass().getClassLoader().toString()); Document doc = sb.build(this.getClass().getClassLoader().getResourceAsStream("bean.xml")); Element root = doc.getRootElement(); List list = root.getChildren("bean"); for(int i=0;i<list.size();i++){ Element element = (Element)list.get(i); String id = element.getAttributeValue("id"); String clazz = element.getAttributeValue("class"); System.out.println(id+":"+clazz); Object o = Class.forName(clazz).newInstance(); beans.put(id, o); } } public Object getBean(String name) { if(beans.get(name)!=null){ return beans.get(name); } return null; } }
相关推荐
基于注解的IOC配置,Spring整合Junit_特别适合新手学习。
里面演示了spring ioc的基本使用,同时使用了junit进行单元测试,后期会加入spring集成junit。 工程使用Maven管理,下载工程后,请使用mvn clean, mvn compile指令对工程进行编译,通过后,使用mvn eclipse:eclipse...
2.使用 Junit 提供的一个注解把原有的 main 方法替换了,替换成 Spring 提供的 3.告知 Spring 的运行器, Spring 和 ioc
19. spring-webmvc-portlet-4.1.1.RELEASE.jar http://www.cnblogs.com/dyllove98/archive/2013/07/01/3165750.html Porlet工作流程和Servlet的主要差异在于,Portlet的请求处理有两个独特 的阶段:动作阶段和显示...
spring-test.jar:对JUNIT等测试框架的简单封装 spring-tx.jar:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 spring-webmvc-portlet.jar:Spring MVC的增强 spring-websocket.jar:
spring:IOC: spring-beans-3.2.4.RELEASE.jar spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-expression-3.2.4.RELEASE.jar com.springsource.org.apache.log4j-1.2.15.jar ...
模拟实现__Spring的Ioc 1、Spring主要两个作用:实例化Bean,动态装配Bean。并将所有的bean放到spring容器中,调用时从容器中取。Spring容器就是一个bean的Map:private Map, Object> beans = new HashMap, Object>...
4.1. Introduction to the Spring IoC container and beans .............................................. 22 4.2. Container overview .........................................................................
4.1. Introduction to the Spring IoC container and beans .............................................. 22 4.2. Container overview .........................................................................
• Test Spring applications using Junit 5 • Utilize the new Java 8 lambda syntax • Use Spring Boot to an advanced level to get any kind of Spring application up and running in no time • Use Java 9 ...
从IOC(控制反转),DI(依赖项注入),应用程序上下文到Spring Boot,AOP,JDBC和JPA的世界。 为难忘的旅程做好准备。介绍今天的Spring Framework仍然和我十二年前第一次使用它时一样受欢迎。 在架构已完全改变的...
* Spring’s unit and integration testing support (on JUnit 3.8, JUnit 4, and TestNG). * How to secure applications using Spring Security. Who this book is for This book is for Java developers who ...
该资源中包含SSH框架整合中spring框架所需要...(3)Spring整合JUnit测试包 (4)AOP核心包(4个包) (5)JDBC模板和事务核心包(spring-jdbc|spring-tx) (6)Spring整合Hibernate核心包 (7)Spring整合Struts2核心包
Spring整合Junit 1.导入依赖spring-test 2.加注解:RunWith、ContextConfiguration 3.注入对象进行测试 Spring整合web 1.导入依赖spring-web 2.配置ContextLoadListener 3.配置 <!--全局初始化参数-->...
Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间的各个部分更加独立,达到统一调用执行,使后期维护更加的方便。 SpringMVC本身是...
包含spring的和Junit的jar包,采用Junit测试,一共四个案例,主要讲述:1.怎么利用IOC容器获得实例化对象;2.IOC容器到底是如何工作 ;3.静态工厂方式实例化Bean;4.依赖和依赖注入的几种方式。以及一张<<IOC应用...
本章学习目标 Spring 框架简介 SpringIOC 的概念和作用 工厂模式设计一个简单的IOC 容器 SpringIOC 的XML 方式HelloWorld SpringIOC 的XML 方式创建对象配置细节 ... Spring 整合Junit 简化测试类编写
1 通过Maven的形式导入用到的JAR包坐标 ... org.springframework spring-context 5.0.2.RELEASE commons-logging commons-logging 1.2 log4j log4j 1.2.12 junit junit 4.12 test com.alibaba
主要讲Spring的核心概念和...介绍了如何借助于Spring搭建JUnit测试环境;详细介绍了什么是AOP,以及AOP的基本示例;介绍了如何使用Spring中的JDBC模块进行持久层的开发与事务的相关概念和Spring的事务管理的实现方案。
struts2+spring4+hibernate5的所有jar包所有jar包包括spring Aop基本包、spring Ioc基本包、springweb开发包、spring事务控制、spring整合junit、spring整合struts包、hibernate包、hibernate整合spring包、struts2...