`
John_Kong19
  • 浏览: 278767 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring DI(依赖注入) IOC(控制反转) AOP(面向切面编程)

阅读更多
spring 的优点?
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring的DI机制降低了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部

什么是DI机制?
依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色
需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中
创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者
因此也称为依赖注入。
spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。
设置注入的优点:直观,自然
构造注入的优点:可以在构造器中决定依赖关系的顺序。

什么是AOP?
面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面
1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面

面向切面编程(aop)是对面向对象编程(oop)的补充,
面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。
AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,
是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。

aop框架具有的两个特征:
1.各个步骤之间的良好隔离性
2.源代码无关性



-----------------------------------------------------------------------------------------------

DI 和 IOC 的区别
DI 和 IOC
DI和IOC是差不多的概念。
一个重要特征是接口依赖,是把对象关系推迟到运行时去确定.
DI是一个初始化实例的过程,分为三种1.setter based 2.constructor based 3.interface based,在spring 中就是应用前两种;但又不仅仅是初始化实例,而且是运用接口的概念去实现这种注入依赖。静态地看,只是依赖一个接口,但实际运行起来,是依赖一个实现了该接口的具体类。
IOC就是面向接口编程的应用
1.一个通常的做法(非面向接口编程的方法),对象A依赖对象B,B会作为A的属性,可以理解为A直接控制B;
2.IOC的做法,对象A依赖于接口C,而不直接依赖于实现了接口C的B,也就是A不能直接控制是哪个具体实现了C的B去做相应的事情,而是由我们控制可以由哪个实现了接口C的B去处理,也就是控制反过来了,是由B来决定了,而不是由A,实现就是面向接口编程。

AOP

AOP是动态代理的应用,将具体业务和相应的其它方面(比如日志,权限之类的)划分开来,业务不会知道还有没有其它的功能来辅助,需要的话我就给他加上一个配置就可以,而不用去修改业务代码。

原先是这个样子



//日志

//权限

//业务代码



现在



//业务代码



而权限和日志则写在其它的类advice中,只要在配置中说明在调用业务方法时(或前,或后,或别的),调用一下advice就OK了。很容易把一个方面,比如权限或日志从业务代码中剥离出来。

在SPRING中,实现AOP的流程如下:

1.定义业务接口
2.定义业务实现类
3.定义interceptor注入类
4.配置Bean,设置class为proxyFactoryBean
    设置其三个属性1.)proxyInterfaces为1
           2.)interceptorNames为3
           3.)target为2
分享到:
评论

相关推荐

    springioc和spring aop

    Spring框架是Java开发中不可或缺的一部分,它通过提供两种核心特性——控制反转(IoC)和面向切面编程(AOP)来简化应用的构建。理解并掌握这两种技术对于任何Java开发者来说都至关重要。 **控制反转(IoC)**,也...

    spring 控制反转和依赖注入.docx

    Spring 框架的核心是控制反转(IOC)和依赖注入(DI),它可以将对象的创建和依赖关系管理,实现高内聚、低耦合的开发模式。 下面是 Spring 框架的核心知识点: 1. 控制反转(IOC):控制反转是 Spring 框架的...

    Spring IOC和Spring AOP_spring aop_springIOC

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心特性包括依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)。这两个概念是Spring框架的基石,极大地简化了...

    关于spring的AOP ,IOC,DI的理解

    Spring的核心特性包括AOP(面向切面编程)和IOC(控制反转),以及依赖注入(DI)。以下是对这些概念的详细解释: **面向切面编程(AOP)** AOP是一种编程范式,它允许开发者将关注点从主业务逻辑中分离出来,例如...

    IOC控制反转&DI依赖注入

    5. 配置数据源、事务管理等核心服务,利用Spring的AOP(面向切面编程)特性实现横切关注点的分离。 总之,IOC和DI是现代软件开发中的重要概念,它们提高了代码的可维护性和可扩展性。通过理解和熟练运用这些原则,...

    Spring IOC 控制反转

    它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)等特性实现了对应用程序的解耦,并通过IOC(Inversion of Control)控制反转来简化配置和管理。 #### 二、Spring ...

    spring dom4j 解析 依赖DI注入 ioc 反转 反射原理

    在IT行业中,Spring框架是Java开发中的核心工具,它提供了许多功能,如依赖注入(DI)、面向切面编程(AOP)以及IoC(控制反转)。在这个话题中,我们将深入探讨Spring框架如何利用DOM4J解析XML配置文件,依赖注入...

    spring ioc和aop原理流程图(详细)

    Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...

    Spring Ioc 注解 依赖注入

    Spring框架的核心特性包括IoC(Inversion of Control,控制反转)、AOP(Aspect Oriented Programming,面向切面编程)以及提供了丰富的扩展支持。其中,IoC和依赖注入(Dependency Injection, DI)是Spring框架最核心...

    Spring IOC AOP MVC 简单例子

    Spring框架是Java开发中不可或缺的一部分,它以模块化的方式提供了许多功能,如依赖注入(IOC)、面向切面编程(AOP)以及Model-View-Controller(MVC)架构模式。在本实例中,我们将深入探讨这三个核心概念以及它们...

    学习Spring笔记_IoC(控制反转)简介

    AOP(面向切面编程) Spring的另一个核心特性是AOP,它允许开发者在不修改源代码的情况下,向程序中添加新的行为,比如日志记录、事务管理等。AOP通过定义切面(Aspect)、通知(Advice)和切入点(Pointcut)等...

    Spring_01_入门篇_依赖注入(控制反转)_ANN

    **Spring框架概述** Spring是一个开源的Java平台,它简化了...通过这样的学习,你将能够熟练掌握Spring框架的基本使用,并为后续更深入的学习,如AOP(面向切面编程)、Spring Boot、Spring Cloud等打下坚实的基础。

    Spring AOP IOC源码笔记.pdf

    Spring框架是Java开发中不可或缺的一部分,它主要由两个核心组件构成:IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。本笔记将深入探讨这两个概念以及它们在Spring中...

    Spring中IOC/AOP的说明和例子

    在Spring框架中,IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是两个核心的概念,它们极大地提高了软件开发的灵活性和可维护性。 **IOC(控制反转)**是Spring的核心...

    Spring相关的笔记,包含ioc、DI、AOP、Spring事务等等

    这份笔记涵盖了Spring的核心概念和技术,包括IOC(Inverse of Control,控制反转)、DI(Dependency Injection,依赖注入)、AOP(Aspect Oriented Programming,面向切面编程)以及Spring事务管理。以下是对这些...

    spring练习AOP与IOC

    Spring框架是Java开发中的核心组件,它以依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)为核心,极大地简化了企业级应用的开发工作。在这个“spring练习AOP与IOC...

    spring aop依赖jar包

    - `spring-core.jar`:Spring的核心库,提供了基本的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)功能,是其他所有模块的基础。 - `spring-context.jar`:提供了上下文容器,扩展...

    Spring框架IoC控制反转.pdf

    Spring的核心理念包括控制反转(IoC)和面向切面编程(AOP)。作为一个开源框架,Spring适用于Java SE和Java EE环境,其主要目标是降低代码间的耦合度,提高软件的可扩展性和可维护性。 二、IoC控制反转 IoC,即...

Global site tag (gtag.js) - Google Analytics