package org.qiutiejun.spring;
/**
* 定义一个人类接口
*
* @author Administrator
*
*/
public interface Human {
//吃
public void eat();
//工作
public void walk();
}
//我们定义2个类来实现次接口
package org.qiutiejun.spring;
public class American implements Human{
public void eat() {
System.out.println("美国人主要以面包为主");
}
public void walk() {
System.out.println("美国人走路的方式主要是开车");
}
}
/***********************************/
package org.qiutiejun.spring;
public class Chinese implements Human{
public void eat() {
System.out.println("中国人对吃很有一套");
}
public void walk() {
System.out.println("中国人行入飞");
}
}
//定义一个抽象工厂
package org.qiutiejun.spring;
/**
* 创建一个工厂类
*
*
* @author Administrator
*
*/
public class Factory {
public final static String CHINESE="chinese";
public final static String AMERICAN="american";
public Human getHuman(String cmd) throws Exception{
if(cmd.equals(CHINESE)){
return new Chinese();
}else if(cmd.equals(AMERICAN)){
return new American();
}else{
throw new Exception("");
}
}
public static void main(String[] args) {
}
}
//测试类
package org.qiutiejun.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
/**
*
* 测试用例
* @author Administrator
*
*/
public class SpringTest {
public static void main(String[] args) throws Exception {
Human human=null;
human=new Factory().getHuman(Factory.CHINESE);
human.eat();
human.walk();
human=new Factory().getHuman(Factory.AMERICAN);
human.eat();
human.walk();
// ApplicationContext ct=new FileSystemXmlApplicationContext("bean.xml");
// Human human=null;
// human=(Human) ct.getBean(Factory.CHINESE);
// human.eat();
// human.walk();
}
}
//以上使我们一般的操作,那么我们怎么使用SPRING IOC进行操作了
//首先需要创建一个XML文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="chinese" class="org.qiutiejun.spring.Chinese"/>
<bean id="american" class="org.qiutiejun.spring.American"/>
</beans>
//需要注意的地方有2点
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">这句话必须有,说明beans的出处在那里,2是类的全路径
//测试类
package org.qiutiejun.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
/**
*
* 测试用例
* @author Administrator
*
*/
public class SpringTest {
public static void main(String[] args) throws Exception {
// Human human=null;
// human=new Factory().getHuman(Factory.CHINESE);
// human.eat();
// human.walk();
// human=new Factory().getHuman(Factory.AMERICAN);
// human.eat();
// human.walk();
ApplicationContext ct=new FileSystemXmlApplicationContext("bean.xml");
Human human=null;
human=(Human) ct.getBean(Factory.CHINESE);
human.eat();
human.walk();
}
}
//非常简单一句话就可以访问
分享到:
相关推荐
主要为大家详细解析了Spring中IoC优点与缺点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于java简单模拟实现spring_ioc
编程语言+JAVAspring+IoC容器+依赖注入**:这是一...它介绍了JAVAspring的IoC容器的概念、原理和作用,以及如何使用JAVAspring的IoC容器来实现依赖注入,包括设值注入和构造注入的方式,以及一些配置文件和注解的用法。
Spring源码分析_Spring_IOC
Java仿Spring框架IOC控制反转利用反射简单实现(源码) Java仿Spring框架IOC控制反转利用反射简单实现(源码)
Java-Spring-SpringIoC容器-SpringIoC的学习 SpringIoC容器的学习笔记 主要介绍了IoC容器工作原理以及如何配置IoC容器 通过标签和注解配置容器
以注解方式模拟Spring IoC AOP,了解Spring是如何实现的.
Spring-IOC的简单实现,包括注解和注解解析,欢迎大家拍砖~!
springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...
详细讲解了springioc的各种注入方式以及对应的java方式。讲解了springioc和DI的区别,以及注入特殊复杂的属性
spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...
手写SpringIoc的XML实现方式,仿照Spring底层Bean工厂类实现ClassPathXmlApplicationContext
SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码,SpringIoc示例代码
《Java语言的反射机制.pdf》资料书,示例源代码JAVA+Spring,初学java反射者可以看看
这是个模拟spring ioc的学习例子,是个java工程。有助于对aop和ioc的理解
NULL 博文链接:https://justsee.iteye.com/blog/1298861
个人整理SpringIOC源码解读,望大婶们指点指点,后续继续添加
Spring的IoC容器初始化源码解析,包括资源定位、加载、注册3个过程
web开发技术spring框架控制反转思想IOC学习笔记,并对java的静态代理和动态代理进行了相关叙述
深入理解java的spring-ioc的使用.docx