spring框架现在用的是如火如荼
管理bean的功能想必是大多数用户用途最广的一个功能
而依赖注入用途也是非常广泛
不知道从什么版本开始注解功能让开发变得很简单,也很简洁
本小例子,就是用注解的方式实现bean管理和依赖注入
小米2手机快要面市了,人人都想要,本例就以此为情境。
1.手机接口---不用多说,为了减少耦合性
package com.ioc.inerface; public interface ITelphone { public void call(); }
2.小米实现
package com.ioc.impl; import org.springframework.stereotype.Component; import com.ioc.inerface.ITelphone; @Component("telphone") public class TelphoneImpl implements ITelphone{ public String toString(){ return "我是手机(小米2)"; } @Override public void call() { System.out.println("bing~~~喂,小米1,我是米2"); } }
3.手机开发出来,得有电话本,姑且认为是一个单独类(不是手机的组件),电话本,不需要接口,耦合度不需要考虑
package com.ioc.impl; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Component; @Component("addressBook") public class AddressBook { private Map mapBook = null; private void init(){ mapBook = new HashMap(); mapBook.put("小米1", "0001"); } public String getNum(String name){ if(mapBook == null){ init(); } return (String) mapBook.get(name); } }
4.ok,手机开发好了,电话本也开发好了,人类出场,毕竟造这些东西都是给人类用,人类接口
package com.ioc.inerface; public interface IPerson { public void call(); }
5.人类实现:
package com.ioc.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ioc.inerface.IPerson; import com.ioc.inerface.ITelphone; import com.ioc.util.BeanFactory; @Component("person") public class PersonImpl implements IPerson{ @Autowired private AddressBook addressBook; public String toString(){ return "i am a human"; } @Override public void call() { ITelphone telPhone = (ITelphone) BeanFactory.getBean("telphone"); String xm1Num = addressBook.getNum("小米1"); System.out.println("---开始打电话,电话号码:"+xm1Num); telPhone.call(); System.out.println("---打电话结束"); } }
6.可是spring管理容器还没造好呢,难道要用的时候再造么,那不太晚了
package com.ioc.util; import org.springframework.context.support.ClassPathXmlApplicationContext; public class BeanFactory { private static ClassPathXmlApplicationContext ctx ; static{ ctx = new ClassPathXmlApplicationContext("bean.xml"); } public static Object getBean(String beanName){ return ctx.getBean(beanName); } public static void closeBeanFactory(){ ctx.destroy(); } }
7.嗯,配置文件还没加上
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- 扫描com.ioc下的所有类,自动为spring容器管理 --> <context:component-scan base-package="com.ioc"/> </beans>
8.ok,我们来测试吧
package com.ioc.test; import com.ioc.inerface.IPerson; import com.ioc.util.BeanFactory; public class SpringIocTest { public static void main(String[] args) { IPerson perSon = (IPerson) BeanFactory.getBean("person"); perSon.call(); BeanFactory.closeBeanFactory(); } }
运行结果:
---开始打电话,电话号码:0001
bing~~~喂,小米1,我是米2
---打电话结束
大功告成---其实在大多数运用中,这些知识就足够,简洁,易用,至于更详细的知识,需要进一步学习了。欢迎点评。
附:
----------------------------------------------
需要的jar
1.aspectjrt.jar
2.aspectjweaver.jar
3.cglib-nodep-2.1_3.jar
4.common-annotations.jar
5.commons-logging.jar
6.log4j-1.2.15.jar
7.spring.jar
-----------------------------------------------
相关推荐
通过学习和实践这个"JavaEE spring IoC入门案例",你将能够理解并掌握如何在Spring框架下实现IoC,从而提高你的JavaEE开发能力。深入理解和运用这些知识点,可以让你在实际项目中编写出更加健壮、易维护的代码。
总的来说,学习"JavaEE Spring IoC入门"意味着你需要理解Spring如何通过IoC管理对象,掌握XML配置文件的编写,以及如何在Web环境中使用Spring MVC进行开发。此外,还需要了解如何编写测试用例来验证Spring配置的有效...
在本例“Spring Ioc(依赖注入)入门例子--属性注入”中,我们将关注如何通过属性注入来管理依赖。 属性注入是指Spring容器将一个对象的属性值设置为另一个对象的引用。这通常用于将服务对象注入到需要使用它们的...
Spring中的IoC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理权交给框架处理,...在实际开发中,Spring提供了更丰富的特性,如自动装配、注解驱动等,进一步简化了对象的管理和依赖注入。
这个入门示例项目旨在帮助初学者了解和掌握Spring 2.5.6版本中的注解使用和基于XML的IoC配置。 首先,让我们来探讨一下Spring的IoC概念。IoC是一种设计模式,它将对象的创建和管理权交给了容器,而不是由对象自身...
《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...
本文将深入探讨Spring的核心概念——依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC),并结合提供的"Spring项目IOC入门案例、Spring项目DI入门案例的代码"进行详细解析。...
**Spring之IoC入门实例详解** 在Java世界中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)能力而广受赞誉。IoC是一种设计模式,它将对象的创建和...
一个机遇Spring3的入门小案例,里面主要简单演示了Spirng配置文件如何配置自动扫描包,控制类、服务类、Dao类如何加注解,被IOC扫描装入容器中。还有AOP例子的演示,有before after afterreturn afterthrow,还有...
3. **IoC容器**:详细解释什么是IoC,以及如何通过XML配置或注解实现依赖注入。这部分还会涵盖Bean的生命周期管理,如初始化、销毁方法的定义。 4. **AOP**:深入理解AOP的概念,包括切面、通知、连接点、切点等,...
《Spring Framework 2 入门经典》是一本深入浅出介绍Spring Framework 2.x版本的书籍,旨在帮助初学者快速掌握这一强大Java企业级应用框架的使用。源代码是学习和理解书中理论知识的重要辅助资源,它包含了书中各个...
使用Spring Web MVC,开发者可以轻松地进行Web层的单元测试,因为它天生集成Spring框架的特性,如依赖注入(IoC)和面向切面编程(AOP)等。同时,Spring Web MVC支持灵活的URL映射策略,能够非常方便地与其他视图技术...
在`HelloWorld`项目中,你会看到如何配置Spring IoC(Inversion of Control,控制反转)容器,以及如何使用注解(@Component)来定义一个简单的Bean。同时,还会讲解如何通过@Autowired自动装配Bean依赖,以及如何使用...
《Spring从入门到精通》是一本全面覆盖Spring框架核心概念和技术的教程,旨在帮助初学者快速掌握Spring,并进一步提升有经验的开发者对Spring的理解。在Java企业级开发中,Spring框架以其灵活、强大的功能和易用性,...
【Spring核心IOC以及DI】是Spring框架中的关键概念,它们是Spring实现控制反转(Inversion of Control,简称IOC)和依赖注入(Dependency Injection,简称DI)的基石。这两个概念是Spring框架的核心,使得应用程序的...
这本书籍“一本很不错的关于spring入门的书籍”显然是针对初学者设计的,旨在帮助新手快速掌握Spring的基本概念和核心功能。 Spring框架的核心特性包括: 1. **依赖注入(Dependency Injection,简称DI)**:这是...
IoC容器通过XML配置文件或注解来读取组件的定义并创建对象实例。 3. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供了一种实现AOP的方法,允许开发者将关注点如日志、事务管理等从核心业务逻辑...
开发者需要对如何通过Spring配置文件或注解来配置和管理Bean的生命周期有一个深入的理解,同时也需要了解Spring提供的各种注解和接口如何在业务逻辑中应用。 Spring框架不仅适用于Web应用的开发,它的模块化特性也...
**Spring 框架入门与依赖注入详解** Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性,简化了对象的创建和管理,实现了松耦合,使得代码更加灵活和易于测试。...