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

aspectJ动态编入问题

    博客分类:
  • AOP
阅读更多
  我最近在做aop的内容。但是碰到了一点问题。希望能够得到大家的帮助。
  我使用aop的方式是要求动态的weave in任何一个我指定的class中的方法(weave in性能测试的代码). 而weave in之后,当程序运行到这个方法是就能的到相关的数据。
  现在我面对的问题是:
  1) 不能使用spring aop或naning aop的默认方法: “proxyFactory.getProxy()来获得aop的class的proxy实例是行不通的。” 因为我无法预知要编入的class。并且每个类都是使用new来创建的。(我个人认为只有改变classloader或者更改java字节码才有可能实现)。
  2) 项目要求使用aspectJ,但是就我平时使用aspectJ的方式大多为Ant打包时编入,或者是load-time时调用aop.xml。我看了很久的aspectj in action我没有发现有任何的方式可以实现在runtime时动态编入任何一个class。

希望大家给我一个解决这个问题的想法,谢谢!
分享到:
评论
3 楼 leadyu 2007-12-16  
如果是要进行性能监控,建议你可以使用我的项目jwebap。它主要针对j2ee应用(EJB & Web Module),部署很简单,对系统无任何侵入,它可以对方法,http请求,jdbc调用进行监控,可以过滤时间,可以跟踪栈信息。可以配置需要监控的包名等等。

你可以访问:jwebap.sourceforge.net,doc目录下有中文文档
2 楼 maqujun 2007-12-14  
惊鸿逝水 写道
应该要使用bytecode enhanced方式!
谢谢你的回复,能具体点吗?我知道Javassist可以实现这一功能。可是项目要求使用aspectJ。我不记得aspectJ有这个功能。
1 楼 惊鸿逝水 2007-12-14  
应该要使用bytecode enhanced方式!

相关推荐

    aspectj-1.9.6.jar

    面向切面编程(AOP)是一种编程范式,旨在解决软件开发中的横切关注点问题,比如日志、事务管理、性能监控等。这些关注点往往跨多个类和方法,传统的面向对象编程难以处理。AOP通过将这些关注点封装为独立的模块,...

    aspectJ

    AspectJ是一种强大的面向方面的编程(AOP)框架,它扩展了Java语言,使得开发者能够更有效地处理横切关注点,即那些跨越多个类或方法,不易封装的传统OOP难以处理的问题,如日志、事务管理、性能监控等。在本资料中...

    Aspectj

    AspectJ是一种广泛使用的Java语言的面向切面编程(AOP)扩展。它允许开发者将关注点模块化,使得系统中的交叉切面(如日志、事务管理、安全性等)可以独立于核心业务逻辑进行处理。本指南将深入探讨AspectJ的核心概念...

    精通AspectJ_源代码

    总的来说,掌握AspectJ不仅能够提升你的编程技能,还能让你在解决实际问题时拥有更多选择,实现更高效、更整洁的代码结构。通过对《精通AspectJ》示例代码的深入学习和实践,你将能够熟练地应用面向方面的编程思想,...

    aspectj-1.6.9.jar

    运行时织入则是在程序运行时,通过AspectJ的加载器动态地将切面应用到目标类上。 2. **语法支持**:AspectJ 提供了自己的扩展语言,称为AspectJ语言(AJ),它扩展了Java语法,允许开发者声明切面、切入点和通知。 ...

    book :aspectj in action

    他们通过丰富的实例和实际应用来展示如何利用AspectJ解决实际问题,从而提高软件开发的效率和质量。 关于“源码”标签,书中可能涵盖了如何阅读和理解AspectJ编译后的字节码,以及如何将AspectJ集成到现有的Java...

    aspectj-1.7.0.jar

    aspectj-1.7.0.jar aspectj的包

    AspectJ的JAR包

    AspectJ Weaver在Spring AOP中起到关键作用,它可以动态地在类加载时织入切面,即使目标类没有被AspectJ编译器处理过。这使得AspectJ与Spring的集成更加灵活,可以在不修改原有代码的情况下引入切面。 2. `...

    aspectj,aspectjrt,weaver等

    AspectJ 提供了静态和动态两种织入方式,静态织入在编译时完成,而动态织入则在运行时进行。 AspectJRT (AspectJ Runtime) 是AspectJ 的运行时库,它是AspectJ 编译器生成的字节码运行的基础。AspectJRT 包含了用于...

    AspectJ程序设计指南

    - **动态连接点模型**:AspectJ支持动态确定哪些方法调用应该被拦截或增强。 - **切点**:定义了何时和何处应用某个通知。 - **通知**:定义了在切点触发时所执行的操作。 - **暴露切点环境**:允许访问连接点的相关...

    aspectj jar

    AspectJ和Spring的整合在Java开发中扮演着重要的角色,特别是在实现面向切面编程(AOP)时。AspectJ是一个强大的、成熟的库,它扩展了Java语言,允许开发者定义和执行切面,这是一种分离关注点的方式,使得业务逻辑...

    org.aspectj,aspectj项目库(org.aspectj).zip

    【标题】"org.aspectj,aspectj项目库(org.aspectj).zip" 提供的是开源项目AspectJ的源码库。AspectJ是一种强大的面向切面编程(AOP)框架,它扩展了Java语言,允许程序员以声明式方式处理系统的横切关注点,如日志...

    AspectJ Cookbook中文版

    然而,尽管aspectj纳入在eclipse这个日益流行的java开源ide之内,但是找到一种实用、非理论的方式来学习这种语言及其他aop工具和技术已经成为一个实际的问题。  迄今为止,本书提供了实用的解决方案以及大量的代码...

    AspectJ面向切面的例子

    面向切面编程(AOP)是一种编程范式,旨在提高软件设计的模块化程度,将关注点分离,尤其是那些跨越多个模块的...同时,对于游戏开发来说,这样的例子也是一个很好的参考,展示了如何利用AOP解决游戏开发中的常见问题。

    Aop之AspectJ详解解读demo

    **Aop之AspectJ详解解读** 在软件开发中,面向切面编程(AOP)是一种设计模式,它允许程序员将关注点分离到不同的模块,从而提高代码的可维护性和复用性。AspectJ是Java平台上的一个开源AOP框架,它提供了一种强大...

    AspectJ_Cookbook_English_edition

    8. **错误处理与调试**:讲解在使用AspectJ过程中可能遇到的问题及解决策略,以及如何调试切面代码。 9. **与其他技术集成**:探讨AspectJ与Spring框架的集成,以及如何在其他Java应用中利用AspectJ增强功能。 ...

    aspectj-1.9.5.jar

    aspectj-1.9.5.jar 官网下载地址:https://www.eclipse.org/aspectj/downloads.php

    AspectJ 文档

    AspectJ是一个功能强大的面向切面编程(AOP)框架,它允许开发者以声明的方式在Java程序中定义横切关注点(cross-cutting concerns),如日志记录、事务管理等。AOP通过引入切面(aspects)来模块化这些关注点,而切...

    spring aspectj.jar

    《Spring AOP与AspectJ深度解析》 在Java开发领域,Spring框架以其强大的功能和灵活性深受开发者喜爱。其中,Spring的面向切面编程(AOP)特性极大地简化了代码的维护和扩展。AspectJ是Spring AOP的重要组成部分,...

Global site tag (gtag.js) - Google Analytics