今天玩这个挺Happy的~~~没有系统地学习,只是用到的时候临时抱抱佛脚,真的是汗颜啊~~
这篇应该是最不错的:
http://51mynet.blogcn.com/diary,5094753.shtml
它是用来做权限的。作为例子初学不错!嘎嘎~
因为现在系统中,要跟踪一些用户的操作信息,所以用到了代理~目前的实现思路是:
1。写一个接口 IActionProxy, 让每个Action 都实现它。
2。Spring四种通知(Advice)形式中,用到的是Interception Around通知,因为:前后拦截是唯一可以控制目标方法是否被真正调用的拦截类型,也可以控制返回对象。而前置拦截或后置拦截不能控制,它们不能印象目标方法的调用和返回。所以选择这种方式。并写了个拦截器,把要实现的操作都放在这里做。
3。ApplicationContext.xml的定义
- <bean id="actionInterceptor" class="com.ll.aop.ActionInterceptor">bean>
- <bean id="onlineAction" class="com.ll.aop.OnlineAction">bean>
- <bean id="doAction" class="org.springframework.aop.framework.ProxyFactoryBean">
- <property name="proxyInterfaces">
- <value>com.ll.aop.IActionProxyvalue>
- property>
- <property name="interceptorNames">
- <list>
- <value>actionInterceptorvalue>
- <list>
- property>
- <property name="target">
- <ref onlineAction/>
- <property>
-
- <bean>
在配置文件里头配置下就OK了。
再就是用到了单态模式,去获得下面代码中的代理的bean,在整个系统初始化的时候,就给他分配好了~
一般测试调用的java 代码
- ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");
- IActionProxy iap = (IActionProxy)context.getBean("doAction");
在项目架构当中,就没必要这么写了.用的是如下的:
java 代码
- WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());
- IActionProxy iap=(IActionProxy )wac.getBean("doAction") ;
好象这样的思路不对哦,所以只好做费了.......因为target里头的ref只能配置一个,不能用list....所以不能用了.而且,项目比较大,不太好用.
估计是自己对AOP这种机制还不是很熟络的了解.有时间该系统地看看书了....嘎嘎~~~~
这种方式,只能实现单一类的代理,也就是说可以为一个类分配多个拦截器,但是不能把一个拦截器给多个类~~~~
分享到:
相关推荐
在实际应用中,AOP通常用于日志记录、性能监控、事务管理等场景。Spring的AOP还提供了其他高级功能,如引入(introduction)、织入(weaving)等,允许我们更加灵活地管理和控制切面的生命周期。 综上所述,Spring...
通过运行这个示例,你可以亲身体验Spring AOP的工作原理,并了解如何在实际项目中应用。 总的来说,Spring 2.5.6版本的AOP特性使得我们能够更方便地处理系统中的非业务逻辑,提高代码的可读性和可维护性。通过理解...
本示例将简要介绍如何在Spring应用中实现AOP,通过实际的代码示例帮助理解其工作原理。 首先,我们要理解AOP的核心概念。AOP是一种编程范式,它允许开发者定义“切面”(Aspects),这些切面封装了特定的关注点,如...
在本文中,我们将深入探讨Spring AOP的基本概念、工作原理以及如何通过一个简单的例子来实现它。 AOP的核心概念包括切面(Aspect)、连接点(Join Point)、通知(Advice)、引入(Introduction)、目标对象...
本示例将深入探讨Spring AOP的基础知识,以及如何在实际应用中使用它。 首先,我们来看"LogProfilter.java",这很可能是实现一个日志拦截器的类。在Spring AOP中,这样的类通常被称为切面(Aspect)。切面是封装了...
AOP是Spring框架的强大特性,它允许我们在应用程序中实现关注点的分离,使得我们可以将横切关注点(如日志、事务管理、性能监控等)与业务逻辑分离,提高代码的可读性和可维护性。 首先,了解AOP的基本概念是至关...
本示例是关于如何在Spring Boot项目中实现AOP功能的一个简单演示。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越多个对象的行为或关注点,如日志记录。切点(Pointcut)定义了在何处...
通过上述步骤,你可以创建一个简单的Spring AOP应用,实现对特定方法的调用进行日志记录。当然,AOP的潜力远不止于此,你可以根据实际场景扩展通知类型,或者创建更复杂的切入点表达式,以实现更细粒度的控制。 在...
在SLT-Spring-AOP这个项目中,你可以找到具体的实现示例,包括如何定义切面、通知和切入点表达式,以及如何在业务代码中应用这些概念。通过对该项目的深入学习,你将能够更好地理解和掌握Spring AOP的实战应用。
在Java开发中,Spring框架因其强大的功能和灵活性而被广泛应用,其中Spring AOP(面向切面编程)是它的重要特性之一。AOP允许程序员将关注点从核心业务逻辑中分离出来,比如日志记录、事务管理等,这些被称为“切面...
事务管理是企业级应用中不可或缺的一部分。Spring提供了一种统一的事务管理接口,支持编程式和声明式事务管理。编程式事务管理允许开发者在代码中显式地开始、提交、回滚事务;而声明式事务管理则更简单,通过在方法...
在实际应用中,我们可以利用Spring AOP进行日志记录、事务管理、权限控制等。例如,通过定义一个切面类,包含前置通知记录方法调用日志,后置通知处理事务提交或回滚,以及异常通知进行异常处理。 四、实战案例 ...
在Spring Boot项目中,配置和使用AOP相对简单。首先,我们需要引入Spring AOP和AspectJ的依赖,这通常在pom.xml或build.gradle文件中完成。然后,我们可以定义一个切面(Aspect),它包含通知(Advice)——即在特定...
在Spring框架中,AOP(面向切面编程)是一...Spring AOP注解的应用使得切面编程更加简单直观,大大简化了对横切关注点的管理。在实际开发中,结合Spring提供的其他特性,如事务管理,可以构建出高效、健壮的后端系统。
在本示例中,我们将深入探讨Spring.NET AOP如何实现动态代理,以及如何利用它来增强应用程序的可维护性和可扩展性。 动态代理是AOP的核心概念,它能够在运行时动态创建代理对象,这个代理对象会拦截目标对象的方法...
在Spring AOP中,通过表达式或注解来定义切入点。 3. **通知(Advice)**:通知是在特定切入点上执行的行为,比如记录日志、开始/结束事务等。有五种不同类型的通知:前置通知(Before)、后置通知(After)、返回...
通过以上步骤,我们就成功地在Spring应用中使用注解AOP实现了日志记录功能。实际上,Spring AOP还支持更多复杂的场景,如自定义通知、基于注解的切入点、引入(Introduction)等。在实际开发中,根据需求可以灵活地...
创建一个简单的Spring AOP应用,首先定义一个切面类,包含切点和通知,然后在Spring配置文件中启用AOP并注册切面,最后编写测试类验证AOP功能是否正常工作。 8. **最佳实践** - 适度使用AOP,过多的切面可能导致...
- **使用ProxyFactoryBean创建AOP代理**:`ProxyFactoryBean`是Spring中的一个类,用于创建AOP代理。当定义了一个名为`myfactory`的`ProxyFactoryBean`时,引用`myfactory`的对象实际上获取的是`ProxyFactoryBean....
在IT领域,Spring框架是Java开发中的一个核心组件,尤其在企业级应用中广泛应用。Spring 3.0版本是其发展的一个重要里程碑,引入了许多新特性和改进,尤其是在面向切面编程(Aspect-Oriented Programming,简称AOP)...