如何在AspectJ中提供动态切入点?

时间:2015-09-16 18:26:21

标签: java spring aop aspectj

我正在尝试构建一个自定义性能测量库,用户可以使用它来测量应用程序中任何方法的性能。我的目标是在不改变用户应用程序的现有Java代码的情况下实现这一目标。

该库将使用MethodInterceptor实现作为衡量性能的建议。 来自用户的唯一输入是他/她选择的切入点表达,没有别的。使用提供的切入点表达式,我的库将能够拦截匹配的方法调用以测量性能。

简而言之,用户只能在spring xml中配置如下:

<bean id="configBean" class="com.something.PointCutConfigBean">
    <property name="patterns">
        <list>
            <value>"execution(* com.company.CustomerDao.addCustomer(..))"</value>
        </list>
    </property>
</bean>

我的问题是如何在我的图书馆中实现这一目标?如何实现PointCutConfigBean课程?我可以使用spring 2 和aspectj。

我知道,如果用户只是写一个普通的<aop:config并使用我的建议,那么同样的事情就可以实现。但是,如果可能的话,我只是在寻找更酷的东西。

2 个答案:

答案 0 :(得分:0)

这是一个很好的问题!

如果需要,为什么不为标记方法或字段创建注释,并编写可以获取注释的方面。 Class.getAnnotations(),如果你的注释存在,你运行代码吗?

答案 1 :(得分:0)

在审查了可能的方法后,我认为@ M.Deinum的评论对我的决定有最有价值的观点。最后,我结束了仅使用pstmt.setString(1,"01-2015"); 路线。

如果有人有任何其他观点,请分享。