`
jijun87120681
  • 浏览: 40764 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring思想学习----IOC容器

阅读更多

 

    接着上篇讲,这里先介绍下Java Bean概念。

    JavaBean具有一个无参构造器和getter/setter方法。可以作为数据对象的载体,也可以作为业务组件实现商业逻辑。和EJB重量级组件而言,通常把JavaBean成为轻量级组件。

    IOC容器:容器就是运行组件环境,上篇已经介绍过了,这里理解下IOC,控制反转。不过更适合成为DI,依赖注入。

    首先理解下为什么要用IOC?

 

 

 public class BookService

    {

        private BookDao bookDao = new HibernateBookDao();

        ...       

    }

 

 

一般我们就按照以上方式编码,这种会有以下几种缺点:

    (1)硬编码BookDao,若换成MybatisBookDao,则需要修改BookService代码

    (2)此BookDao组件的生命周期被BookService管理,无法共享此组件。就是外部需要用到BookDao组件时,需要BookService提供getter方法,访问BookDao,而这种方式很挫

    (3)若BookDao又依赖DataSource,这种组件间依赖耦合度更高

    此外还有其他缺点,比如测试复杂等

    

    OK,从上面可以看出,系统中有大量组件,而其生命周期和相关依赖由组件自己管理,会大大增加系统复杂度,组件间耦合度,增加测试和维护的困难。

    传统应用程序,控制权在应用程序本身,开发者创建BookService组件,在创建BookService组件过程中,再创建BookDao组件,然后使用BookService组件为用户服务。

    在IOC模式下,控制权发生了发转:组件的创建从应用程序转移到IOC容器,组件采用“注入”机制,将一种组件“注入”到另一种组件中。

    关于IOC的“注入机制”,有set等方式,这里不再介绍。

0
0
分享到:
评论

相关推荐

    Spring 容器类图.vsdx

    整理Spring IOC容器的存储结构类图,可以方便的观看类图,结合每个Spring IOC容器组件功能描述,整体把握Spring容器的设计基本思想

    Delphi下的轻量级IoC容器 - Elite Container (Demo 0.1版)

    相比Spring的对象容器,它提供的功能更为精简常用(如对象延迟创建、对象属性自动注入等),降低了学习的难度,并且提供了很多扩展点,你只需简单地写一个插件实现类,并在配置文件中进行简单配置,就可以让Elite ...

    02-01-03-一步一步手绘Spring IOC运行时序图1

    1、通过分析 Spring 源码,深刻掌握核心原理和设计思想 2、通过本课的学习,完全掌握 SpringIOC 容器的初始化细节,并手绘时序图 3、掌握看源码不

    spring简介-spring概念与体系结构

    也就是说,我们把需要新建的对象(当然不止我们之前提到的数据层对象,业务层对象同样也可以)放在IOC容器中(交给IOC管理),每当我们需要对象时,直接找IOC拿就行,而在IOC容器中这些被创建管理的对象,我们把它...

    Spring详细学习资料下载

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. spring的设计思想是,单例模式和工厂模式 2 spring的四大特点(优点) 轻量级,低侵入的设计 Spring的DI机制降低了业务对象替换的复杂性 spring不...

    用项目案例彻底理解SpringIOC容器

    ●运用工厂模式设计程序●理解JavaBean和POJO对象●理解控制反转思想●理解IOC容器在一个乡村小学校,一天只上三节课,有三名老师和一个校长。张老师负责教学生语文,王老师教学生数学,李老师教音乐,校长负责安排...

    Spring 3.0就这么简单源代码

    本书主要介绍了Spring 3.0的核心内容,不仅讲解了Spring 3.0的基础知识,还深入讨论了Spring IoC容器、Spring AOP、使用Spring JDBC访问数据库、集成Hibernate、Spring的事务管理、Spring MVC、单元测试、敏捷开发...

    Spring技术内幕:深入解析Spring架构与设计原理

    一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...

    PHP进阶学习之依赖注入与Ioc容器详解

    本文实例讲述了PHP依赖注入与Ioc容器。分享给大家供大家参考,具体如下: 背景 在很多编程语言(例如java)开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的...

    实践彻底理解IOC思想

    IOC英文是Inversion of Control中文理解为控制反转,是Spring框架的一种设计思想。表示创建或者控制对象的权利由应用程序转换到Spring容器,如下将通过new关键字准确获取UserServiceImpl、UserMapperImpl类的权利...

    Spring——IOC(控制反转)与DI(依赖注入).docx

    IOC与DI的理解及使用 控制反转IOC(Inversion of Control)是一种设计思想,DI(依赖注入)是实现IOC的一种方法 。... 在Spring中实现控制反转的是IOC容器 ,其 实现方法是依赖注入 (Dependency Injection,DI)

    Spring技术内幕:深入解析 Spring架构与设计原理.pdf

    第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex...

    Spring技术内幕:深入解析Spring架构与设计原理(第2部分)

     Spring产品级的IoC容器是如何作为一个完整的系统实现并运行的?它如何启动?如何完成Bean的解析和载入?又如何实现Bean的生命周期管理?  Spring如何简捷地在JVM上实现AOP功能?  Spring AOP如何实现Aspect编织...

    Spring技术内幕:深入解析Spring架构与设计原理 1/2

     spring产品级的ioc容器是如何作为一个完整的系统实现并运行的?它如何启动?如何完成bean的解析和载入?又如何实现bean的生命周期管理?  spring如何简捷地在jvm上实现aop功能?  spring aop如何实现aspect编织...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)

    第二部分深入阐述了各种基于IoC容器和AOP的JavaEE组件在Spring和的实现原理,第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。无论你是Java程序员、Spring开发者,还是平台...

    SPRING3技术内幕

     Spring产品级的IoC容器是如何作为一个完整的系统实现并运行的?它如何启动?如何完成Bean的解析和载入?又如何实现Bean的生命周期管理?  Spring如何简捷地在JVM上实现AOP功能?  Spring AOP如何实现Aspect...

Global site tag (gtag.js) - Google Analytics