`
464772913
  • 浏览: 25342 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

spring ioc与aop原理

 
阅读更多

spring IoC和AOP的原理

(2012-04-07 11:54:33)
标签:

spring

ioc

aop

 
下面为spring的主要原理:
IoC(Inversion of Control):IoC就是应用本身不依赖对象的创建和维护而是交给外部容器(这里为spring),这要就把应用和对象之间解耦,控制权交给了外部容器。即Don't call me ,I'll call you!所以IoC也称DI(依赖注入)对象的创建和维护依赖于外部容器.
class UserService{
private UserDao userDao = new UserDaoImpl();  //让业务层与数据访问层耦合在一起,不利用以后模块的替换.
private UserDao userDao_IoC = null;
public void SetUserDao(UserDao userDao){
this.userDao_IoC = userDao
}
 
public void save(User user){
userDao.save(user);
}
}
 
AOP(Aspect Oriented Programming):面向切面编程。就是把一些贯穿在各个模块之间相同的功能抽象出来,然后封装成一个面。
AOP一般都是通过代理来实现,利用代理就有目标对象是什么,拦截哪些点(方法),拦截后要做什么。
JoinPoint(连接点):被拦截到的点. Advice(通知):拦截JoinPoint之前与之后要做的事。
PointCut(切入点):对joinPoint进行拦截的定义。Target(目标对象):代理的目标对象。
对于异常处理,日志功能,权限的检查,事务等都是贯穿到各个模块之中,因此进行AOP.
代理技术有面向接口和生成子类.
public Object getProxy(final Object targetObj) { 
Obejct obj = Proxy.newProxyInstance( 
    targetObj.getClass().getClassLoader(),       //被代理类的类加载器
    targetObj.getClass().getInterfaces(),   //被代理类接口的字节码
    new InvocationHandler() {   //类似于一个回调函数 代理功能就在里面实现
        @Override 
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable{
    try{ 
beforeAdvice();   //前置通知
        method.invoke(targetObj, args);  //拦截的点
afterAdvice();    //后置通知
    }catch (Exception e) { 
        exceptionAdvice();   //异常通知
    }finally{ 
                        finalAdvice();   //必须执行通知
                    } 
                   return obj; 
 } 
 }); 
 }
还一个用子类实现的同理 要采用CGlib库来实现 JDK6之前未提供,估计JDK以后会提供。
分享到:
评论

相关推荐

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

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

    以注解方式模拟Spring IoC AOP

    通过这种方式,我们可以在不修改目标类代码的情况下,添加额外的功能,实现了与Spring AOP类似的效果。 总结来说,模拟Spring的IoC和AOP主要是通过注解来管理和控制对象的生命周期及行为。虽然这种模拟简化了Spring...

    springioc和spring aop

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

    springIOC与AOP配置

    Spring框架是Java开发中不可或缺的一部分,它通过引入依赖注入(IOC)和面向切面编程(AOP)的概念,极大地简化了应用程序的构建和管理。在本文中,我们将深入探讨Spring的IOC容器和AOP的核心概念,以及如何进行相关...

    浅谈 Spring 原理 透析,ioc aop

    浅谈 Spring 原理 透析,IOC 和 AOP Spring 框架是一个从实际项目开发经验中抽取的,可高度重用的应用框架。它是一个轻量级容器,带有包装器,使许多不同的服务和框架更易于使用。轻量级容器接受任何 JavaBean,而...

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)...

    springIOC及AOP底层原理Demo实现

    Spring框架是Java开发中不可或缺的一部分,它以...通过以上步骤,你将能够理解并掌握Spring的IoC和AOP原理,并具备自己实现的基础。这不仅有助于深入理解Spring,也有助于你在实际项目中更好地利用Spring框架进行开发。

    Spring IOC AOP MVC 简单例子

    例如,`SpringIOC`目录中的配置文件(如`applicationContext.xml`)用于定义bean的定义和它们之间的依赖关系。通过XML或注解方式声明bean,Spring可以自动管理bean的实例化、初始化和销毁,从而简化了代码并提高了可...

    SpringIOC和AOP实现机制模拟

    Spring框架是Java开发中不可或缺的一部分,它通过提供控制反转(IOC)和面向切面编程(AOP)等核心特性,极大地简化了企业级应用的构建。让我们深入探讨这两个概念及其在Spring中的实现机制。 首先,Spring的控制...

    Spring IOC和aop的原理及实例详解

    Spring IOC和AOP的原理及实例详解 在软件开发中,控制反转(IOC)和面向切面编程(AOP)是两种非常重要的设计模式。Spring框架正是基于这两种模式的思想设计的。下面我们将详细介绍Spring IOC和AOP的原理及实例详解...

    myeclipse spring IOC和AOP 例子

    Spring框架是Java开发中的核心组件,它通过控制反转(IOC)和面向切面编程(AOP)等特性,极大地简化了企业级应用的构建。在本教程中,我们将深入探讨这两个概念以及如何在MyEclipse环境中使用它们。下面将详细阐述...

    spring ioc和aop讲解项目demo

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(IOC)和面向切面编程(AOP)功能而闻名。本项目"spring ioc和aop讲解项目demo"旨在通过实际操作来帮助开发者深入理解这两个核心概念。 首先,让...

    spring3.2.13Ioc与Aop依赖的jar

    spring Ioc与Aop依赖的jar包,基本用到的都有,包括aopalliance-1.0、aspectjweaver-1.6.9、commons-logging-1.2、log4j-1.2.17、spring-aop-3.2.13.RELEASE、spring-beans-3.2.13.RELEASE、spring-context-3.2.13....

    Spring IOC、AOP实现代码,可调试查看内部原理,简单易懂

    本资源包含Spring IOC和AOP的实现代码,使得开发者可以深入理解其内部原理,便于调试和学习。 **Spring IOC(Inversion of Control)** IOC,即控制反转,是一种设计模式,它将对象的创建和管理交给专门的容器来...

    SpringIOC和AOP原理设计模式

    **Spring IOC原理与设计模式** 控制反转(IOC)是一种设计思想,它改变了传统应用程序中对象之间的依赖关系管理方式。在没有IOC的情况下,对象通常自行创建其依赖的对象实例,而在Spring中,这个过程由Spring的IOC...

    初学者认识和书写Spring IoC 和AOP

    初学者认识和书写Spring IoC 和AOP

    helloAop.zip 内含spring ioc,aop例子

    本压缩包"helloAop.zip"包含了Spring框架的两个关键特性:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)的示例。下面将详细介绍这两个概念及其在实际开发中的应用。 *...

    Spring IOC和AOP代码与笔记整理

    Spring框架是Java开发中不可或缺的一部分,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。本篇将深入探讨Spring的这两...

    Spring中IoC优点与缺点解析

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

    Spring IOC和Spring AOP_spring aop_springIOC

    综上所述,Spring的IOC和AOP提供了强大的工具,帮助开发者实现松耦合、模块化和关注点分离,从而提升代码的可维护性和复用性。通过学习和熟练掌握这两个核心概念,能够更好地利用Spring框架进行高效开发。

Global site tag (gtag.js) - Google Analytics