2 qq 31246751 qq_31246751 于 2017.01.11 12:35 提问

spring AOP 织入没有加入注解的类方法

本人在做一个关于日志的功能,使用到spring aop。
但问题是作为切点的那个方法所在的类是一个抽象类,并且实现的子类并不是通过spring容器来注入的
我试了下其他有打注释标签的类,前置通知和后置通知都是可以执行的,证明我写的语法并没有错误,所以我判断是类的加载问题。
那有什么办法能够把相关的通知加上的吗?
贴上相关代码:

相关切面
@Aspect
@Component("serviceMethodLogInterceptor")
public class ServiceMethodLogInterceptor {

@Autowired
private SQLService sqlService;

/**
 * 服务方法切入点
 */
@Pointcut(value = "(execution(* com.snxun.hczz..*.*(..))) && (execution(@com.rop.annotation.ServiceMethod * *(..))) && (!execution(* com.snxun.hczz.log..*.*(..)))")
public void serviceMethodPointcut() {}

/**
 * 解析方法切入点
 */
@Pointcut(value = "(execution(* com.snxun.hczz..SQLContext.*(..)))")
public void analyseMethodPointcut() {}
    .....
    }


    要切入的对象
    public abstract class SQLContext<T extends SQLParam> implements SQLAnalyses<T> {
....

}

2个回答

csxiaoz
csxiaoz   2017.01.12 14:49
已采纳

没太明白你说的意思。
不过我也遇到过类似的问题。
http://blog.csdn.net/csxiaoz/article/details/54316087
给切点换到上一层就好了啊!

JE_GE
JE_GE   2017.01.15 12:39

把控制切入的类变成接口类

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring AOP: 织入的顺序
Spring AOP 可以管理多个的切入顺序.
spring aop如何织入代码
spring aop又是如何实现将增强代码织入到原有方法的业务逻辑里面去的呢?spring通过jdk dynamic proxy 和 cglib 两种方式,各有优缺,综合使用。jdk dynamic proxyjdk dynamic proxy,是创建出目标类的proxy,你在代理类接口约定的方法中去实现自己的增强逻辑,同时告诉代理类目标对象是什么,目标对象的interface,这样代理对象便可根据
spring从头开始(二)---bean织入
集中讲解bean织入spring中主要用三种织入方式: - 配置xml文件 - 同配置xml相对应的一种java类的配置写法 - 配置xml中自动扫描,注解织入这三种配置看起来有些重复,使要做更多的选择。但是好处是,你有更多的选择,并且我们可以混合起来使用,只要自己的项目更适合。 权威的建议是,尽可能优先的选用扫描注解注入,然后配合java类方式的配置注入,因为相比于xml配置,java类要
Spring-AOP @AspectJ进阶之增强织入的顺序
概述 示例概述一个连接点可以同时匹配多个切点,切点对应的增强在连接点上的织入顺序到底是如何安排呢?这个问题需要分三种情况讨论: 如果增强在同一个切面类中声明,则依照增强在切面类中定义的顺序进行织入; 如果增强位于不同的切面类中,且这些切面类都实现了org.springframework.core.Ordered接口,则由接口方法的顺序号决定(顺序号小的先织入); 如果增强位于不同的切面类中,且这些
Spring AOP 之编译期织入、装载期织入、运行时织入
一  配置工厂Bean           通常由应用程序直接使用new创建新对象,为了将对象的创建与使用相分离,采用工厂模式,即应用程序将对象的创建与初始化交给工厂来完成。        一般情况下,应用程序有自己的工厂对象来创建bean,如果将工厂对象交给Springle管理,那么Spring管理的就不是普通的bean,而是工厂Bean。调用getBean()方法,Sprin
spring aop 注解以及各种织入点语法
@AspectJ的详细用法  在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: 一些常见的切入点的例子  execution(public * * (. .)) 任意公共方法被执行时,执行切入点函数。  execution( * set* (. .)) 任何以一个“set”开始的方法被执行时,执行切入点函数。  exec
Spring AOP 之 通知、连接点、切点、切面。
1:知识背景 软件系统可以看成是由一组关注点组成的,其中,直接的业务关注点,是直切关注点。而为直切关注点提供服务的,就是横切关注点。 2:面向切面的基本原理什么是面向切面编程 横切关注点:影响应用多处的功能(安全、事务、日志) 切面: 横切关注点被模块化为特殊的类,这些类称为切面 优点: 每个关注点现在都集中于一处,而不是分散到多处代码中 服务模块更简洁,服务模块只需关注核心代
Spring AOP-通知-为目标方法织入多个切面
AOP-通知-为目标方法织入多个切面开发中可能会遇到为目标方法织入多个切面,比如前置。后置通知都需要
Spring中的两种AOP织入方式
Spring实现aop是依赖两种技术,一种是jdk动态代理,被切入的类需要实现接口,如果在配置文件中不指明实现什么接口,spring会自动搜索其实现接口并织入advice,别一种是借助动态修改类的技术,使用cglib动态地扩展类来实现切面,cglib可以实现字节码级地修改,执行效率比jdk动态代理要高,但创建实例时没有前者快.默认情况下,使用jdk动态代理,通过下面的配置,可以显式指明到底使用哪种
AOP织入时机
http://book.51cto.com/art/200811/97334.htm 对于AOP编程而言,程序的主要逻辑部分和Aspect功能部分的具体实现都可以采用传统的OO技术等实现,这里没有什么新东西。AOP最为特别并使其相对其他方法具有明显优点的部分就在于,它能够以多样的方式将程序中用到的多个方面灵活地织入(Weave)到一起,形成一个完整的应用程序。因而在学习AOP编程时,如何以准