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 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...
在传统的软件设计中,对象的创建和依赖关系的维护通常由代码自身来完成,而在Spring Ioc中,这些控制权被反转给了Spring容器,使得对象的生命周期管理和依赖注入变得更为灵活和可扩展。 **一、控制反转(IoC)概念*...
在这个项目中,“基于java简单模拟实现spring_ioc”显然是为了帮助开发者理解Spring的IoC容器是如何工作的,以及如何通过Java代码来模拟这个过程。 首先,让我们了解什么是Spring的IoC。IoC是一种设计模式,它将...
总结来说,Spring的IOC容器机制通过`BeanFactory`和`ApplicationContext`接口的实现,提供了强大且灵活的对象管理和依赖注入能力,极大地简化了Java应用的开发和维护过程。通过深入理解IOC容器的创建与初始化流程,...
编程语言+JAVAspring+IoC容器+依赖注入**:这是一...它介绍了JAVAspring的IoC容器的概念、原理和作用,以及如何使用JAVAspring的IoC容器来实现依赖注入,包括设值注入和构造注入的方式,以及一些配置文件和注解的用法。
通过以上步骤,我们可以实现一个简单的Java模拟Spring IOC的系统。这种方式可以帮助开发者更好地理解Spring的工作原理,并在没有Spring框架的环境中实现相同的功能。不过,需要注意的是,Spring框架提供了更高级的...
Java反射和Spring IOC是Java开发中的两个重要概念,它们在构建灵活、可扩展的应用程序时起着关键作用。本文将深入探讨这两个主题,并提供相关的学习资源。 首先,让我们了解一下Java反射。Java反射机制是Java语言的...
Spring IOC,全称为Inversion of Control,中文常被称为“控制反转”,是Spring框架的核心...在这个过程中,"Spring-ioc-jar"中的类和接口是实现这些功能的基础,深入研究其内部实现将有助于提升你的Spring开发技能。
例如,`SpringIOC`目录中的配置文件(如`applicationContext.xml`)用于定义bean的定义和它们之间的依赖关系。通过XML或注解方式声明bean,Spring可以自动管理bean的实例化、初始化和销毁,从而简化了代码并提高了可...
模拟Spring的IoC,我们可以创建一个简单的容器类,其中包含一个Map来存储bean。然后使用注解处理器扫描带有特定注解(如`@Component`)的类,并将它们注册到容器中。当需要注入依赖时,容器可以解析注解并自动装配。...
Java Spring代理模式AOP-IOC分析 一、代理模式概述 在软件设计中,代理模式是一种常用的设计模式。它可以在不修改原始代码的情况下,扩展或修改原始对象的行为。代理模式可以分为静态代理和动态代理两种。静态代理...
### Spring_IOC详解:深入探索Spring框架的IOC容器原理 #### 引言 Spring框架作为Java企业级应用开发的基石,其...掌握Spring的IOC容器实现细节,无疑能够提升Java开发者的技能水平,使其在实际项目中更加游刃有余。
Spring_IOC-v(上)笔记是关于 Spring 框架中的 IoC(控制反转)技术的笔记,主要介绍了 IoC 的概念、依赖注入、Bean 的设置、Spring 组件的管理等知识点。 IoC 技术是 Spring 框架的核心概念之一,它的主要思想...
在本例中,我们将通过一个简单的例子来理解如何在Spring中使用IoC。 首先,我们有三个类:`Human`接口,`Chinese`和`American`类,它们分别代表人类和两种不同国籍的人。`Chinese`和`American`实现了`Human`接口,...
在Java世界中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC)能力,成为企业级应用开发的首选框架之一。理解并模拟Spring的IOC机制对于深入学习Spring...
而在IOC中,这些依赖由外部容器(如Spring)提供,从而降低了代码间的耦合度。 2. **Spring容器** - Spring容器是Spring框架的核心,负责创建、配置和管理对象。主要有两种类型的容器:BeanFactory和...
在IT行业中,Spring框架是Java开发中的重要工具,尤其在企业级应用开发中扮演着核心角色。本案例主要探讨的是Spring框架的核心特性之一——依赖注入(Dependency Injection,简称DI),通常也被称为IOC(Inversion ...
在IT行业中,Spring框架是Java开发领域中一个极为重要的组件,尤其在企业级应用开发中占据主导地位。本文将深入探讨Spring的核心特性——控制反转(Inversion of Control,简称IOC),并通过实例解析其工作原理。 ...
在本文中,我们将深入探讨Spring框架的核心特性——控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),以及如何通过注解配置和Maven项目构建来实现这一概念。Spring框架是Java...