`
hatedance
  • 浏览: 59056 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Spring AOP的缺陷

阅读更多
用Spring很久了,但是一直作为一个用户而已,未曾认真的研究其原理。说起来就是Ioc和AOP,外加很多集成工具。
今天碰到一个问题,发现调用自身的函数不会被AOP拦截。在javaeye找到一个帖子,说明了根本原因:spring的aop采用的是代理模式。所以调用对象自身(this.foo())的函数就避开了代理对象,所以aop失效了。我想Spring早应该把这一点写在文档里,而不是号称AOP如何如何。
记下来免得以后又忘记。
分享到:
评论
2 楼 hatedance 2010-11-10  
因为java所以java 写道
楼主是指面向接口代理吗?


无论是java的基于接口的动态代理还是cglib的自动生成子类做代理,这个问题是的都存在的。
原始对象代码里的this永远不会指向代理对象。
1 楼 因为java所以java 2010-11-10  
楼主是指面向接口代理吗?

相关推荐

    Spring AOP基础关于AOP是什么的理解

    AOP 的出现是为了解决 OOP 中的缺陷,即 OOP 中的类封装了自己所必须的业务逻辑,导致类之间的耦合性太高,难以维护和修改。AOP 的出现使得程序设计变得更加灵活和可维护。 AOP 的核心概念包括: 1. 联结点(Joint...

    Spring-AOP编程.docx

    AOP 是 OOP 的补充和完善,可以解决 OOP 中的缺陷,例如日志功能、安全性、异常处理和透明的持续性等横切关注点。 AOP 的核心思想是将应用程序中的商业逻辑同对其提供支持的通用服务进行分离。AOP 技术可以将软件...

    AOP实现机制和应用的研究

    #### 三、AOP实现机制的特点、优势及缺陷 AOP的实现机制主要分为以下几种类型: 1. **编译时织入**:在编译阶段通过特殊工具(如AspectJ的ajc编译器)将切面代码与核心业务逻辑相结合。这种方式的优点是可以尽早...

    ssm框架的缺陷管理系统

    Spring的主要特点包括依赖注入(DI)和面向切面编程(AOP)。在缺陷管理系统中,Spring可以用来管理对象之间的依赖关系,例如数据库连接池、事务管理器等,通过DI使得这些服务易于测试和替换。AOP则可用于日志记录、...

    如何优雅地在 Spring Boot 中使用自定义注解,AOP 切面统一打印出入参日志 | 修订版…

    今天主要说说如何通过自定义注解的方式,在 Spring Boot 中来实现 AOP 切面统一打印出入参日志。小伙伴们可以收藏一波。 废话不多说,进入正题 ! 目录 一、先看看切面日志输出效果 二、添加 AOP Maven

    软件缺陷管理项目

    - **Spring**:这是一个全面的Java企业级应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)、数据访问、事务管理等功能。Spring还包含了Spring MVC,可以与Struts结合使用,提供更强大的Web应用支持。 2. ...

    基于ssm+mysql软件缺陷管理系统源码数据库论文.doc

    1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)等特性,使得开发者可以更方便地管理对象和处理事务。...

    基于java软件缺陷管理系统设计与实现.docx

    Spring框架是这个系统的核心,它提供了一种依赖注入(DI)和面向切面编程(AOP)的能力,使得代码更加灵活和可维护。Spring MVC作为Spring的一部分,负责处理HTTP请求和响应,协调应用程序的各个部分。MyBatis则是一...

    基于ssm+mysql软件缺陷管理系统源码数据库文档.zip

    Spring作为基础框架,负责IoC(Inversion of Control)和AOP(Aspect Oriented Programming),Spring MVC则处理HTTP请求和响应,MyBatis则作为持久层框架,简化了数据库操作。 2. **Spring框架**: Spring的核心...

    MyBatis Spring声明式事务管理示例代码

    Spring的声明式事务管理是采用AOP(Aspect-Oriented Programming,面向切面编程)实现的。在编程式事务管理中,各事务处理代码实际上是相似的,这就造成了代码重复;而且编程式事务管理会造成事务管理代码和被管理的...

    基于ssm+mysql软件缺陷管理系统源码数据库.doc

    Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP)。依赖注入使得对象之间的依赖关系可以在运行时自动装配,而不是在代码中硬编码。面向切面编程则允许开发者将横切关注点(如日志记录和事务管理)与...

    精通Spring--Java轻量级架构开发实践

    Spring AOP(Aspect Oriented Programming)模块大量使用了代理模式,为实现切面(Aspect)提供了基础。通过动态代理技术,Spring能够在运行时为对象创建代理,实现在不修改原代码的情况下添加新功能,如日志记录、...

    第24次课-1 Spring与Hibernate的整合

    开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决了Spring封装Hibernate后灵活性不足的缺陷。 24.3 Spring对Hibernate的简化 24.3.4 HibernateTemplate的复杂用法 ...

    基于ssm+mysql软件缺陷管理系统设计与实现.docx

    Spring作为一个全面的框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,用于简化企业级应用的开发。Spring MVC是Spring框架的一部分,专注于Web应用程序的模型-视图-控制器(MVC)架构,使得开发者可以...

    SSM项目软件缺陷管理系统.zip

    同时,Spring还提供了AOP(Aspect Oriented Programming,面向切面编程)功能,用于实现如日志、事务管理等跨切面的逻辑。 2. SpringMVC:SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。它遵循MVC...

    课设毕设基于SSM的软件缺陷管理系统LW+源码可运行.zip

    1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心功能,简化了开发流程,增强了代码的可测试性。在这个项目中,Spring可能用于管理对象的生命周期和提供事务...

    微信小程序软件缺陷管理系统ssm后端源码案例设计.zip

    1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)等功能,使得代码更加模块化,易于管理和测试。 2. **...

Global site tag (gtag.js) - Google Analytics