`
暮云凌轩
  • 浏览: 9109 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

spring-junit-ioc---2013-07-30

    博客分类:
  • ssh
 
阅读更多



 通过实例模拟了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;
		
	}
	
}

 

 

  • 大小: 31.1 KB
  • 大小: 60.4 KB
分享到:
评论

相关推荐

    基于注解的IOC配置,Spring整合Junit。

    基于注解的IOC配置,Spring整合Junit_特别适合新手学习。

    spring-ioc

    里面演示了spring ioc的基本使用,同时使用了junit进行单元测试,后期会加入spring集成junit。 工程使用Maven管理,下载工程后,请使用mvn clean, mvn compile指令对工程进行编译,通过后,使用mvn eclipse:eclipse...

    TommyMerlin#Blog-Markdown#5-Spring学习笔记-Spring整合Junit1

    2.使用 Junit 提供的一个注解把原有的 main 方法替换了,替换成 Spring 提供的 3.告知 Spring 的运行器, Spring 和 ioc

    spring4.1核心包

    19. spring-webmvc-portlet-4.1.1.RELEASE.jar http://www.cnblogs.com/dyllove98/archive/2013/07/01/3165750.html Porlet工作流程和Servlet的主要差异在于,Portlet的请求处理有两个独特 的阶段:动作阶段和显示...

    spring4.3.9相关jar包

    spring-test.jar:对JUNIT等测试框架的简单封装 spring-tx.jar:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 spring-webmvc-portlet.jar:Spring MVC的增强 spring-websocket.jar:

    ssh框架所需整合的所有42个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

    模拟实现__Spring的Ioc 1、Spring主要两个作用:实例化Bean,动态装配Bean。并将所有的bean放到spring容器中,调用时从容器中取。Spring容器就是一个bean的Map:private Map, Object&gt; beans = new HashMap, Object&gt;...

    spring-framework-reference-4.1.2

    4.1. Introduction to the Spring IoC container and beans .............................................. 22 4.2. Container overview .........................................................................

    spring-framework-reference4.1.4

    4.1. Introduction to the Spring IoC container and beans .............................................. 22 4.2. Container overview .........................................................................

    Pro Spring 5 An In-Depth Guide -Apress(2017)

    • 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 ...

    spring-master-class:Spring Framework 5的更新介绍。成为了解Spring In Depth核心功能的专家。 您将在课程期间编写单元测试,AOP,JDBC和JPA代码。 包括对Spring Boot,JPA,Eclipse,Maven,JUnit和Mockito的介绍

    从IOC(控制反转),DI(依赖项注入),应用程序上下文到Spring Boot,AOP,JDBC和JPA的世界。 为难忘的旅程做好准备。介绍今天的Spring Framework仍然和我十二年前第一次使用它时一样受欢迎。 在架构已完全改变的...

    Spring Recipes: A Problem-Solution Approach, Second Edition

    * 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框架所需要的jar包

    该资源中包含SSH框架整合中spring框架所需要...(3)Spring整合JUnit测试包 (4)AOP核心包(4个包) (5)JDBC模板和事务核心包(spring-jdbc|spring-tx) (6)Spring整合Hibernate核心包 (7)Spring整合Struts2核心包

    Spring.html

    Spring整合Junit 1.导入依赖spring-test 2.加注解:RunWith、ContextConfiguration 3.注入对象进行测试 Spring整合web 1.导入依赖spring-web 2.配置ContextLoadListener 3.配置 &lt;!--全局初始化参数--&gt;...

    Spring高级之注解驱动开发视频教程

    Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间的各个部分更加独立,达到统一调用执行,使后期维护更加的方便。 SpringMVC本身是...

    springIOC案例

    包含spring的和Junit的jar包,采用Junit测试,一共四个案例,主要讲述:1.怎么利用IOC容器获得实例化对象;2.IOC容器到底是如何工作 ;3.静态工厂方式实例化Bean;4.依赖和依赖注入的几种方式。以及一张&lt;&lt;IOC应用...

    Spring4快速学习步骤

    本章学习目标  Spring 框架简介  SpringIOC 的概念和作用  工厂模式设计一个简单的IOC 容器  SpringIOC 的XML 方式HelloWorld  SpringIOC 的XML 方式创建对象配置细节 ... Spring 整合Junit 简化测试类编写

    通过Spring的IOC控制完成druid数据库的基本操作案例

    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

    java视频教程:spring框架精讲附加实战项目练习

    主要讲Spring的核心概念和...介绍了如何借助于Spring搭建JUnit测试环境;详细介绍了什么是AOP,以及AOP的基本示例;介绍了如何使用Spring中的JDBC模块进行持久层的开发与事务的相关概念和Spring的事务管理的实现方案。

    struts2+spring4+hibernate5所有jar包

    struts2+spring4+hibernate5的所有jar包所有jar包包括spring Aop基本包、spring Ioc基本包、springweb开发包、spring事务控制、spring整合junit、spring整合struts包、hibernate包、hibernate整合spring包、struts2...

Global site tag (gtag.js) - Google Analytics