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

【问题】如何在spring-aop中用@DeclareParents 扩展接口,调用被扩展类的对象

阅读更多
http://forum.springframework.org/showthread.php?t=59770
希望能够动态的给user类增加接口getContent,该接口直接返回User的toString方法的结果

据说基于spring aop达不到访问adviced object的目标,于是,将问题通过aspectj得到解决
package com.yyhy.java.search.compass;

import org.aspectj.lang.JoinPoint;

public aspect CompassAOP {

	declare parents: com.yyhy.java.GenericCoder.* extends DefaultCompassableImpl;
    declare parents: com.yyhy.java.Privilege.* extends DefaultCompassableImpl;
    declare parents: com.yyhy.hx.zcdfk.* extends DefaultCompassableImpl;
    declare parents: com.yyhy.hx.jgpmk.* extends DefaultCompassableImpl;
    declare parents: com.yyhy.log.* extends DefaultCompassableImpl;

public pointcut compass():execution(* *.getContent(..));
Object around():compass(){
   return thisJoinPoint.getThis().toString();
}
}

分享到:
评论
1 楼 nlslzf 2009-02-23  
这个问题的核心是,不能够用spring framework的,要用aspectj的,因为spring 对这个东西支持不完整,至少我这么看得,不知道现在spring是否修改到完全支持了

相关推荐

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    使用JDK中的Proxy技术实现AOP功能与使用CGLIB实现AOP功能

    在Spring AOP中,如果目标对象实现了至少一个接口,那么Spring会选择使用JDK Proxy。以下是一个简单的示例: ```java public interface MyService { void doSomething(); } public class MyServiceImpl ...

    16.spring与springmvc常见面试题.docx

    但在 Spring 中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由 Spring 来完成,然后注入调用者直接使用。单例模式+工厂模式+反射创建。 3. Spring 框架 IOC 与 AOP 合二为一 答:...

    ESB应用Spring_Hello_World

    【ESB应用Spring_Hello_World】是针对JBoss ESB的一个示例教程,它展示了如何在ESB中集成Spring框架来实现一个简单的服务调用。这个应用的主要目的是演示基于Spring的action调用机制,利用ESB进行消息传递和处理。 ...

    Struts2 Spring Hibernate的配置及登录实例(附源码)

    Spring作为一个全面的框架,提供依赖注入(DI)和面向切面编程(AOP),以及事务管理等功能;Hibernate则是一个持久化框架,简化了数据库操作。将这三者集成可以构建出高效、可维护的Web应用。下面将详细介绍如何...

    Spring_Security_2.0.x中文参考文档

    - Spring Security 的历史可以追溯到 RACOON 项目(RACOON 本身是基于 Acegi 安全框架),它于 2005 年被整合进 Spring 框架中。 - **发行版本号** - 版本 2.0.x 代表了一个重要的里程碑,引入了许多新特性和改进...

    SSH框架面试题.pdf

    - `prepare()`: 在执行Action之前被调用,用于初始化Action实例。 - `validate()`: 用于验证请求参数的有效性。 5. **Struts的验证机制是怎样的?** Struts提供了内置的验证机制,允许开发者通过配置文件或代码...

    mybatis-3官方zip包

    这个库提供了如SqlSessionTemplate和SqlSessionDaoSupport等类,帮助简化在Spring应用中使用MyBatis的工作。 在实际应用中,开发者会根据`mapper.xml`文件定义的SQL语句,通过Mapper接口来执行数据库操作。例如,...

    Spring源码学习四:BeanDefinition装载前奏曲1

    这个类是Spring中用来加载XML配置文件的上下文类。在创建`ApplicationContext`实例时,通常会调用带有`configLocations`参数的构造函数,这个参数指定了Spring XML配置文件的位置。例如,`"applicationContext.xml"`...

    spring boot配置多数据源

    在Spring Boot应用中,配置多数据源是一项常见的需求,尤其对于那些需要同时连接不同数据库(如MySQL、Oracle等)的应用来说。Spring Boot以其简洁的配置和自动配置特性,使得这项任务变得相对简单。本文将详细讲解...

    Java 208道面试.docx

    - 反射API允许在运行时检查类的信息,创建和操作对象,调用私有方法,甚至修改类的字段。 - Class类:代表Java类的运行时信息。 - 构造器、方法和字段的反射调用。 7. **对象拷贝** - 浅拷贝:仅复制对象的引用...

    mycrm中用到的包2

    在mycrm中,Spring可能被用来管理对象的生命周期,提供事务管理,并整合其他组件如Hibernate。Spring的IoC容器可以方便地管理和配置Struts1.x中的Action和Service类。 3. **Hibernate**: Hibernate是一个持久化...

    springMvc源代码分析与实践.zip

    ModelAndView是Spring MVC中用来持有模型数据和视图信息的对象。模型数据可以在Controller中设置,用于传递给视图。视图名则是决定如何呈现结果的关键。 5. **视图技术** Spring MVC支持多种视图技术,如JSP、...

    spring整合freemarker发送邮件例子

    在IT行业中,Spring框架是Java领域广泛使用的轻量级应用框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等。而Freemarker则是一种强大的模板引擎,常用于生成动态HTML、XML...

    海辉面试题

    #### 为什么会在项目中用spring?它有什么优势?用哪个特性可以实现事务管理? - **优势**:简化依赖注入、提供AOP支持、简化配置。 - **事务管理**:使用`@Transactional`注解或通过XML配置。 #### forward和...

    strust2.jar

    1. **spring.jar**:Spring框架是Java企业级应用广泛使用的轻量级框架,它可以管理对象的生命周期、提供AOP(面向切面编程)支持、事务管理等功能。在Struts2项目中,Spring常用来整合其他组件,如DAO层的事务控制、...

    SSH框架开发中用到的包

    在Java Web开发中,SSH(Spring、Struts2、Hibernate)框架组合被广泛使用,它提供了强大的企业级应用开发能力。SSH框架的核心在于Spring作为应用的容器,管理对象的依赖和生命周期;Struts2作为MVC模式的实现,处理...

    最新大厂Java面试题(上).pdf

    对象在JVM中创建,首先通过类加载器加载相应的类信息到方法区,然后在Java堆中分配内存,之后进行对象初始化。 #### 内存溢出异常 内存溢出异常指的是程序在申请内存时,没有足够的空间分配给请求的内存区域,导致...

    webservice开发所需要的包

    在Web服务领域,Spring提供了强大的支持,可以用来创建和管理服务端点,通过AOP(面向切面编程)实现事务管理和安全控制,以及通过IoC(控制反转)容器来管理服务的生命周期。 2. **CXF框架**:CXF是一个用于构建和...

    loja-virtual-java-jdbc-formacao-spring:Projeto Curso

    在这个项目中,Java被用作主要的编程语言,用于实现业务逻辑和应用程序接口。开发者可能使用了Java SE(Standard Edition)来构建后端服务,因为Java SE提供了基础的类库和API,可以满足大部分服务器端应用的需求。 ...

Global site tag (gtag.js) - Google Analytics