`
李宏喜
  • 浏览: 118696 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring2中aop的使用及遇到的一些问题

阅读更多
aop在spring中有两中实现的方式一种是xml,一种是基于注解的,我主要通过xml方式来实现
首先是要引入相关的jar包,如aspectjrt.jar,aspectjweaver.jar
<bean id="aaa" class="aaa"></bean>
<aop:config>
   <aop:aspect ref="aaa">
	<aop:pointcut id="login" 
         	     expression="execution(* bbbbbb*.checkLogin*(..))"/>
	<aop:after-returning  method="loginLog" pointcut-ref="login"/>	
   </aop:aspect>
</aop:config>

execution(* bbbbbb*.checkLogin*(..)
* 返回类型
bbbbbb* 包路径
checkLogin* 方法名
.. 参数
method="loginLog" aaa中调用方法

pointcut-ref="login" target方法

execution(* *(..)) and !execution(* *(..)) 包含并且不包含指定路径中方法

aop:after-returning  方法之后调用
aop:around 方法前后
aop:before 调用之前
aop:throw 异常之后

在拦截方法时,原方法如果有异常抛出,要捕捉业务异常,并继续抛出
注意在指定包中存在的方法重名的现象
在websphere环境中,加入aop之后,带来了循环依赖的问题,因为在原有的程序中,存在着循环依赖的情况, 在没有加入aop之后,没有显现,加入之后,则出现
has been injected into other beans xxxxx 
in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of 
auto-proxy creation). This means that said other beans do not use the final version of the bean. This is 
often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' 
flag turned off, for example
最终去掉了引用,建立新的第三方对象,解决这个问题.
分享到:
评论

相关推荐

    Spring中的AOP不生效

    ### Spring中的AOP不生效的原因及解决方法 在Java开发中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种重要的编程思想和技术手段,主要用于处理横切关注点问题,如日志记录、性能统计、安全控制、...

    Spring5_AOP.pdf

    面向切面编程(AOP)是Spring框架中的一项重要技术,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑代码中分离出来,通过提供声明式的服务来减少代码重复、提高模块化、并使得业务逻辑更容易维护和...

    struts2+spring集成bug——使用AOP时可能遇到的问题分析

    然而,集成过程中可能会遇到一些问题,尤其是当涉及到Spring的AOP时。 首先,让我们深入理解Struts2和Spring的集成原理。在集成过程中,通常会通过Spring的`struts-plugin.xml`配置文件来管理Struts2的动作类...

    spring-aop.rar_aop1270_spring_spring aop

    2. CGLIB代理:如果目标对象没有实现接口,Spring会使用CGLIB库创建代理对象,通过继承目标对象并覆写方法实现通知。 三、源码解析 Spring AOP的核心类包括`org.springframework.aop.framework.ProxyFactoryBean`...

    spring aop 依赖jar

    在描述中提到的问题,用户在尝试使用Spring AOP的注解`@Aspect`时遇到了没有提示的情况。这通常是因为缺少了相关的jar包依赖。Spring AOP的实现离不开Spring核心库以及AOP联盟(AOP Alliance)的jar包。在Spring 3.2...

    spring-aop.pdf 源码电子书

    这个设计决策让编程人员在使用AOP时遇到问题时能够及时发现错误,并且不必添加额外的异常处理代码。 - `ConstructorInterceptor.java`是AOP联盟提供的一个接口,用于拦截构造器调用。通过实现这个接口,编程人员...

    spring AOP的运用

    2. 当遇到一个切入点匹配的连接点时,Spring会根据通知类型调用相应的`Advice`。例如,对于`@Before`通知,Spring会调用`MethodBeforeAdvice`接口的方法;对于`@Around`通知,Spring会调用`ProceedingJoinPoint`的`...

    Spring aop代码

    这个压缩包文件"Spring AOP代码"很可能包含了一些示例代码,用于演示如何在Spring框架中使用AOP进行功能的扩展和模块的解耦。 AOP的核心概念是切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点...

    使用Spring AOP对异常进行统一处理

    我们在捕获到异常并对异常进行处理时可能会遇到如下一些问题: 1.不确定应如何处理这些异常 2.需要记录异常日志时没有记录,或者异常在不同的地方重复记录,使得排错调试不方便 3.处理日志时,需要在每一个try-catch...

    Spring Aop demo

    6. **实战经验**:可能会分享一些实际开发中遇到的问题和解决方案,或者提供一些最佳实践。 至于标签“源码 工具”,意味着这个示例项目不仅提供了理论解释,还可能包含了具体的源代码供读者下载和学习。在...

    aop示例spring 的aop思想解决项目中多次出现的同一个问题

    在软件开发过程中,我们经常会遇到一些重复的代码片段,例如日志记录、权限验证、事务管理等。这些通用的功能如果硬编码在每个业务方法中,不仅会使代码变得冗余,而且难以维护。Spring框架的AOP(面向切面编程)...

    java Spring代理模式AOP-IOC结合

    在软件开发中,我们经常会遇到一些非功能性需求,如日志记录、身份验证、性能监控等,这些需求会污染我们的业务代码,影响代码的可读性和维护性。这时,我们可以使用代理模式来将这些非功能性需求与业务代码分离,...

    Spring AOP代理详细介绍

    一开始我对spring AOP还是属于一知半解的状态,这几天遇到一个问题,加上又查看了一些Spring相关知识,感觉对这个问题有了更深刻的认识。所以写下来分享一下。 我们知道,Spring支持多种AOP方式,Spring自己的基于...

    Spring5AOP项目源码

    Spring5_AOP是一个关于Spring框架第五版(Spring 5)中面向切面编程(AOP)的项目源码。这个项目旨在深入理解并实践Spring AOP的核心概念和技术,包括切面、通知、切入点表达式以及如何在实际开发中应用这些概念。 ...

    struts2+spring2.5+hibernate3基础包(包括AOP)

    Struts2、Spring 2.5 和 Hibernate 3 是经典的 Java Web 开发三大框架,它们的整合使用(SSH 整合)在...同时,由于SSH的广泛使用和成熟的社区支持,开发者可以找到丰富的资源和解决方案来解决在开发过程中遇到的问题。

    spring MVC AOP注解方式如何拦截controller 例子

    当我们想通过注解方式拦截Controller层的方法时,可能会遇到一些问题。本文将详细介绍如何使用AspectJ注解在Spring MVC中实现AOP拦截Controller方法,并提供一个具体的例子。 首先,我们需要了解Spring AOP的基础...

    Spring Mvc Aop

    2. **启用AOP代理**:在Spring配置文件(如`applicationContext.xml`或使用Java配置类)中,需要启用AOP代理。如果是XML配置,可以添加: ```xml &lt;aop:aspectj-autoproxy /&gt; ``` 或者,如果你使用Java配置,可以...

    Spring aop、jdbc和事务tx练习

    在IT领域,Spring框架是Java开发中的核心工具之一,它为构建高质量的、可维护的、松耦合的应用程序...在实践中,你可能会遇到的问题包括事务传播行为、异常回滚规则、事务隔离级别等,这些都是进一步学习和研究的方向。

    struts2+hirbenate+SpringAOP

    在这个实际案例中,Struts2、Hibernate和Spring AOP被集成使用,构建了一个完整的Web应用。以下是关于这三个框架的详细知识: 1. **Struts2**: - **工作原理**:Struts2基于拦截器(Interceptor)模式,通过配置...

Global site tag (gtag.js) - Google Analytics