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

Spring AOP+0 formal unbound in pointcut

阅读更多

spring的AOP配置


参考下边这个连接,写的很详尽,不管是利用配置文件配置,还是利用注解的方式完成,一目了然。
http://blog.chinaunix.net/uid-21547257-id-97998.html

 

(1)我在学习过程中不管是用Aspect语法注解配置,还是用Spring的<aop:...>命名空间,都会报这么
一个错误:
0 formal unbound in pointcut
搜了很多资料,几经波折,都说是expression表达式方法参数匹配的问题,但一直都没有找到不报错
的正确的配置,有问题的expression表达式为:
execution(* com.citi.oprisk.mca.web.controller.*.*_ProxyService(..))
意为拦截此包下所有以_ProxyService结尾的方法,
改过后不报错的表达式为:
execution(* com.citi.oprisk.mca.web.controller.*.*_ProxyService(..)) and args(name);

关于这个问题搜到一些资料:
http://www.iteye.com/problems/13707
http://blog.csdn.net/llbupt/article/details/6611901
http://www.myexception.cn/j2ee/390894.html
http://blog.163.com/rettar@126/blog/static/121650342200961611204525/
http://www.linuxidc.com/Linux/2012-01/51270.htm


(2)我把我用到的几种正确的配置贴出来一起学习下:
方法一:
用<aop:..>的命名空间
<aop:config proxy-target-class="true">
     <aop:pointcut id="controllerPointcut" expression="execution(* com.citi.oprisk.mca.web.controller.*.*_ProxyService(..)) and args(name)"/>
     <aop:aspect ref="mcaControllerMethodExecutionAdvice">
       <aop:before pointcut-ref="controllerPointcut" arg-names="name" method="invokeProxy"/>
     </aop:aspect>
</aop:config>

注意参数的写法

方法二:
<bean id="exceptionHandlerPointCut" class="org.springframework.aop.aspectj.AspectJExpressionPointcut">
      <property name="expression" value="execution(* com.citi.oprisk.mca.web.controller.*.*_ProxyService(..))"></property>
</bean>
<bean id="exceptionHandlerAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
      <property name="pointcut" ref="exceptionHandlerPointCut"></property>
      <property name="advice" ref="mcaControllerMethodExecutionAdvice"></property>
</bean>
不用注解,不用<aop:...>,这么写也是可以的

方法三:
注解方式;

(3)expression表达式详细解释:
execution(* com.citi.oprisk.mca.web.controller.*.*_ProxyService(..))
整个表达式的意思是com.citi.oprisk.mca.web.controller包下所有以_ProxyService结尾的方法;
第一个*代表所有的返回值类型
第二个*代表所有的类
第三个*代表类所有方法
最后一个..代表所有的参数
更多详细参考:http://zhidao.baidu.com/question/497318436.html

(4)使用ProxyFactoryBean创建AOP代理:http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch07s05.html
Spring AOP ProxyFactoryBean Example:http://www.roseindia.net/tutorial/spring/spring3/aop/proxyfactorybeanexample.html
Spring的切入点:
http://www.blogjava.net/cmzy/archive/2008/08/09/220910.html
http://cmzy.iteye.com/blog/231802

 

分享到:
评论

相关推荐

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)

    基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)基于Cglib简单实现Spring体系(Ioc+Aop+Mvc)...

    Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离

    Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离Spring AOP + SpringMVC +Mybatis做动态数据源,实现读写分离

    SpringMVC+springAOP+spring security+Hibernate整合实例代码

    Spring MVC、Spring AOP、Spring Security和Hibernate是Java开发中常用的四大框架,它们各自负责不同的领域,但在实际项目中往往需要进行整合以实现更高效、更安全的开发。本实例代码提供了一个完整的整合示例,涵盖...

    springaop+arg

    在"springaop+arg"这个主题中,我们将深入探讨Spring AOP的注解和XML配置方式,以及如何处理AOP中的参数。 首先,让我们从Spring AOP的基础开始。AOP的核心概念是“切面”(Aspect),它封装了横切关注点,如日志、...

    Spring AOP + AspectJ in XML 配置示例

    这篇博客“Spring AOP + AspectJ in XML配置示例”旨在指导开发者如何在XML配置中实现Spring AOP和AspectJ的结合。 首先,我们需要理解AOP的基本概念。AOP通过将关注点(如日志、事务管理)与业务逻辑分离,提高了...

    软件依赖包(Spring AOP+Hibernate Transaction)

    本资源提供的"软件依赖包(Spring AOP+Hibernate Transaction)"正是这样一种集合,它包含了Spring AOP和Hibernate Transaction管理的jar文件,使得开发者能够便捷地在Java应用中实现面向切面的编程(AOP)以及事务...

    SpringAOP+AspectJ

    1. **AspectJ的切入点表达式**:AspectJ的切入点表达式语言(Pointcut Expression Language, PEL)比Spring AOP的更强大,能够精确地定位到特定的类、方法甚至方法参数。 2. **AspectJ编译时织入**:AspectJ可以与...

    Spring AOP + AspectJ annotation example

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)则是其重要组成部分,它允许我们分离关注点,尤其是跨切面的系统级服务,如日志、事务管理等。AspectJ是Spring AOP支持的一种强大...

    Spring AOP+ehCache简单缓存系统解决方案

    在本篇【Spring AOP+ehCache简单缓存系统解决方案】中,我们将探讨如何利用Spring AOP(面向切面编程)和ehCache框架来构建一个高效、简单的缓存系统,以提升应用程序的性能。ehCache是一款流行的开源Java缓存库,它...

    Spring Aop+Log4j 动态日志

    在IT行业中,Spring AOP(面向切面编程)和Log4j是两个非常重要的工具,它们在实际开发中起着至关重要的作用。本篇将详细探讨如何结合Spring AOP和Log4j实现动态日志记录。 Spring AOP是Spring框架的一个重要特性,...

    图书管理系统(SpringBoot+SpringMVC+SpringAOP+Spring+IoC )

    本图书管理系统基于SpringBoot、SpringMVC、SpringAOP和Spring IoC等核心技术构建,旨在提供一个高效、灵活且可扩展的图书管理解决方案。系统具备用户管理、图书信息管理、借阅管理和统计分析等功能模块,通过友好的...

    springAop+自定义注解实现权限管理

    一个简单的采用自定义注解结合SpringAop实现方法执行的权限管理,这个demo中并没有涉及到与数据库的交互和业务代码,用户权限在登陆时采用简单的手动初始化。该demo用的jdk1.7编译,Spring4.0版本,只想通过这个demo...

    Spring AOP+ehCache简单缓存系统解决方案.doc

    Spring AOP 和 EhCache 结合使用提供了一个简单而有效的缓存解决方案,主要目的是优化系统性能,减少对数据库的频繁访问。下面将详细解释这个解决方案的关键组成部分。 首先,EhCache 是一个广泛使用的开源 Java ...

    spring,spring-aop-5.3.22.jar+aop+IDEA本地包

    spring-aop-5.3.22.jar Spring AOP provides an Alliance-compliant aspect-oriented programming implementation allowing you to define method interceptors and pointcuts to cleanly decouple code that ...

    Spring+AOP+aspectjrt+aspectjweaver+jar包

    在IT行业中,Spring框架是Java企业级应用开发的首选,而AOP(面向切面编程)则是Spring框架中一个强大的特性,它允许我们通过定义切面来实现代码的解耦和模块化。AspectJ是一个完全独立的AOP框架,它可以与Spring...

    mybatis 拦截器 + spring aop切面 + spring事务+ 反射工具类

    在IT行业中,MyBatis、Spring AOP、Spring事务管理和反射工具类是常见的技术栈,它们在构建高效、灵活的企业级应用中起着至关重要的作用。以下是对这些知识点的详细阐述: 1. MyBatis拦截器(MyBatis Interceptor)...

    spring aop jar 包

    在Spring AOP中,切面由通知(Advice)和切点(Pointcut)定义。 2. **通知(Advice)**:通知是在特定连接点(Join Point)执行的代码,例如方法调用前、后或者异常发生时。Spring AOP支持五种类型的通知:前置...

    SpringBoot中的AOP+自定义注解(源代码)

    1.4 Spring AOP 和 AspectJ AOP 有什么区别? 2. 在 SpringBoot 中使用 Aop 功能 2.0 创建一个SpringBoot项目 2.1 引入 POM 依赖 2.1.1 引入springboot aop依赖 2.1.2 引入fastjson依赖 2.2 .编写配置类SpringConfig...

    Spring框架+SpringAOP动态代理

    ### Spring框架+SpringAOP动态代理 #### 一、Spring AOP 动态代理概述 在探讨Spring AOP(Aspect-Oriented Programming,面向切面编程)中的动态代理之前,我们首先简要回顾一下AOP的基本概念。面向切面编程是一种...

    Spring AOP完整例子

    Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许开发者在不修改源代码的情况下,通过插入切面来增强或改变程序的行为。在本教程中,我们将深入探讨Spring AOP的不同使用方法,包括定义切点、通知类型...

Global site tag (gtag.js) - Google Analytics