`
jijun87120681
  • 浏览: 41357 次
  • 性别: 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_IOC-v(上)笔记

    IoC 技术是 Spring 框架的核心概念之一,它的主要思想是将对象的创建和管理交给容器来管理,而不是由对象自己来管理。这样可以降低对象之间的耦合度,提高系统的灵活性和可维护性。 在 Spring 中,IoC 通过依赖...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘3.zip

    023-spring-ioc-ioc容器的bean获取三种方式.mp4 024-spring-ioc-扩展组件周期方法.mp4 025-spring-ioc-扩展作用域配置.mp4 026-spring-ioc-扩展factoryBean使用.mp4 027-spring-ioc-三层架构组件管理介绍和...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘4.zip

    023-spring-ioc-ioc容器的bean获取三种方式.mp4 024-spring-ioc-扩展组件周期方法.mp4 025-spring-ioc-扩展作用域配置.mp4 026-spring-ioc-扩展factoryBean使用.mp4 027-spring-ioc-三层架构组件管理介绍和...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘2.zip

    023-spring-ioc-ioc容器的bean获取三种方式.mp4 024-spring-ioc-扩展组件周期方法.mp4 025-spring-ioc-扩展作用域配置.mp4 026-spring-ioc-扩展factoryBean使用.mp4 027-spring-ioc-三层架构组件管理介绍和...

    2023版全新SSM框架实战精讲 视频教程 下载下载 因为太大存百度云盘1.zip

    023-spring-ioc-ioc容器的bean获取三种方式.mp4 024-spring-ioc-扩展组件周期方法.mp4 025-spring-ioc-扩展作用域配置.mp4 026-spring-ioc-扩展factoryBean使用.mp4 027-spring-ioc-三层架构组件管理介绍和...

    Spring的IoC实现案例

    在Spring框架中,IoC容器负责创建对象、管理它们之间的依赖关系,并在需要时注入这些依赖。 让我们开始分析“Priter”类。这个类代表了打印机,它可能有一个或多个方法用于执行打印操作。为了实现灵活性,我们不...

    spring-01-ioc1.rar

    2. **Spring容器**:Spring的核心是IoC容器,如BeanFactory和ApplicationContext,它们负责读取配置,实例化、配置及管理Bean。 3. **Bean定义**:如何在XML或Java配置中定义Bean,包括其类名、初始化方法、属性...

    Spring中IoC优点与缺点解析

    IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 优点 1. 简化对象的创建:IoC ...

    Spring IOC容器实现分析.pdf 下载

    《Spring IOC容器实现分析》 在Java开发领域,Spring框架无疑是使用最为广泛的轻量级框架之一,其中的核心组件就是IOC(Inversion of Control)容器。本文将深入剖析Spring的IOC容器,理解其工作原理和重要功能,以...

    springIoc实现原理

    Spring Ioc容器是整个Spring框架的基石,它负责创建、配置和管理对象。容器通过读取XML、Java注解或Java配置类等方式,获取对象的定义信息,然后根据这些信息实例化对象并进行依赖注入。 **三、依赖注入(DI,...

    spring入门学习-2、IOC、DI知识.pdf

    依赖注入明确描述了“被注入对象依赖于IOC容器配置依赖对象”。简而言之,DI是实现IOC思想的一种手段,通过DI,可以更轻松地管理和组织应用程序中的对象依赖关系。 #### 四、DI依赖注入的几种方式 ##### 1. XML...

    spring4讲义-第二章spring与IoC

    Spring的IoC容器通过依赖注入的方式实现了松耦合,提供了对象之间协作的框架,从而简化了代码编写,提高了代码的可维护性和可测试性。这也使得Spring框架成为Java企业级应用开发的首选框架之一。学习Spring框架不仅...

    spring-framework-4.2.4.RELEASE.rar

    - **IoC(Inversion of Control)容器**:它是Spring的核心,负责管理对象的生命周期和依赖关系,通过XML或注解方式配置。 - **AOP(Aspect Oriented Programming)**:提供面向切面编程,允许定义“切面”,并在...

    tiny-spring-step-6-invite-application-context.zip

    《深入理解Spring框架:IOC容器与ApplicationContext》 在软件开发领域,Spring框架因其强大的功能和易用性,已经成为Java企业级应用的事实标准。本篇文章将深入探讨Spring框架的核心组件——Inversion of Control...

    spring-framework-1.0-m1.zip源码

    2. 控制反转:IoC是指应用程序的控制权从应用程序本身转移到框架,Spring容器根据配置文件动态地创建、装配和管理对象。这种设计模式使得组件之间解耦,降低了系统复杂度。 三、核心组件分析 1. ...

    Spring IoC容器实现的结构分析

    Spring IoC容器是Spring框架的核心,它负责管理应用对象的生命周期和依赖关系。通过对IoC(Inversion of Control,控制反转)的实现,Spring容器将对象的创建和组装工作从应用代码中分离出来,使得应用更易于测试和...

    Spring核心学习IOC部分

    本学习资料主要聚焦于Spring的IOC容器,特别是从最基本的BeanFactory开始,逐步深入理解如何构建一个类似Spring功能的系统。 首先,BeanFactory是Spring的最基本容器,它负责管理对象(也称为Bean)。BeanFactory...

    spring-framework-5.3.29.tar.gz

    例如,`org.springframework.beans`包主要处理Bean的创建和管理,`org.springframework.context`包实现了IoC容器,而`org.springframework.aop`则包含AOP相关的类和接口。通过对这些源码的阅读和分析,开发者可以更...

Global site tag (gtag.js) - Google Analytics