spring=======03========aop注释实现_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3214 | 回复: 0   主题: spring=======03========aop注释实现        下一篇 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-9-7 13:15:06 | [全部帖] [楼主帖] 楼主

前面讲了关于xml配置文件实现aop的方式,但是还是没有注释方便。

@Component() //配置bean,不写名字,默认为类名首字母小写
@Aspect //相当于aop:aspect 标签
public class LoggerUtil {
      @Pointcut("execution (* com.javalong.spring.day02.*.*(..))") //aop:pointcut
public void servicePoint(){}
      @Around("servicePoint()") //aop:around
      public void log(ProceedingJoinPoint pjp) throws Throwable{
            System.out.println("记录前~~~~~~~~~~~~");
            pjp.proceed();
            System.out.println("记录后~~~~~~~~~~~~");
      }
}
//配置非常简单,


不过还有一点需要提出的是,需要在配置文件中加上:

<aop:aspectj-autoproxy/>。


运行 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl2' defined in file [E:\spring\sts-bundle\workspace\HelloWorld\bin\com\javalong\spring\day02\UserDaoImpl.class]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut servicePoint

报错。

error at ::0 can't find referenced pointcut servicePoint


找不到切点servicePoint

代码改为

@Around("execution (* com.javalong.spring.day02.*.*(..))")
public void log(ProceedingJoinPoint pjp) throws Throwable{
      System.out.println("记录前~~~~~~~~~~~~");
      pjp.proceed();
      System.out.println("记录后~~~~~~~~~~~~");
}


成功~~

网上说 是jdk问题,还有换aspectj.jar貌似都没用。

这个是环绕通知,其他通知差不多,就不一一举例了。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论