`
xxp3369
  • 浏览: 151323 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

AOP3

阅读更多


spring对AOP的支持

Aspect默认情况下不用实现接口,但对于目标对象(UserManagerImpl.java),在默认情况下必须实现接口
如果没有实现接口必须引入CGLIB库

我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动传入,从JoinPoint中可以取得
参数值、方法名等等



applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	     xmlns:aop="http://www.springframework.org/schema/aop"
	     xmlns:tx="http://www.springframework.org/schema/tx"
	    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	
	<bean id="securityHandler" class="com.bjsxt.spring.SecurityHandler"/>           
	
	<bean id="userManager" class="com.bjsxt.spring.UserManagerImpl"/>
	
	<aop:config>
		<aop:aspect id="security" ref="securityHandler">
			<aop:pointcut id="allAddMethod" expression="execution(* com.bjsxt.spring.UserManagerImpl.add*(..))"/>
			<aop:before method="checkSecurity" pointcut-ref="allAddMethod"/>
		</aop:aspect>
	</aop:config>	
</beans>


SecurityHandler.java

package com.bjsxt.spring;

import org.aspectj.lang.JoinPoint;

public class SecurityHandler {
	
	private void checkSecurity(JoinPoint joinPoint) {
		Object[] args = joinPoint.getArgs();
		for (int i=0; i<args.length; i++) {
			System.out.println(args[i]);
		}
		
		System.out.println(joinPoint.getSignature().getName());
		System.out.println("----------checkSecurity()---------------");
	}
	
}
分享到:
评论

相关推荐

    11spring4_aop3.rar

    注解实现aop xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans ...

    spring_aop4.rar_Home Home_jar 转换_spring AOP jar

    3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换 如何强制使用CGLIB实现AOP? * 添加CGLIB库,SPRING_HOME/cglib/*.jar * 在spring配置文件中加入&lt;aop:aspectj-...

    spring aop spring aop

    3. **通知(Advice)**:通知是在切点匹配时执行的代码,有前置通知(Before)、后置通知(After)、环绕通知(Around)、异常通知(AfterThrowing)和最终通知(AfterReturning)。在`PersonProxy`类中,`before()`...

    aopalliance-1.0.jar及aopalliance源码

    3. **性能监控**: 可以在方法调用前后记录执行时间,实现方法级别的性能监控。 4. **安全性检查**: 在方法调用前进行权限验证,确保只有授权的用户或服务才能执行特定操作。 **总结** AOP Alliance作为面向切面...

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    aop所依赖的所有包

    AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在减少代码的重复性和增强可维护性,特别是在处理系统中的横切关注点时。这些关注点,如日志、事务管理、安全检查等,往往分散在系统的各个部分...

    spring aop

    文件“SpringAOP3”可能是相关的代码示例或者案例研究,可能包含了如何创建和应用切面、定义通知和切入点的代码片段。这部分内容有助于读者通过实际操作加深对Spring AOP的理解。 总的来说,Spring AOP是Spring框架...

    AOP@Work AOP 工具比较

    面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,提高软件的模块化程度。AOP的核心是切面,它封装了横切关注点,如日志、事务管理、性能监控等,使得这些功能可以独立于主...

    spring-boot aop

    3. **配置切点**:在切面类中,使用`@Pointcut`定义切点表达式,这可以匹配一组方法。在上面的例子中,我们定义了一个切点,匹配`com.example.service`包下的所有方法。 4. **使用代理**:Spring会根据需要自动创建...

    aop开发环境jar包

    3. **Aspect Oriented Maven (AOM)**:Maven插件,帮助在Maven构建过程中处理AspectJ的依赖和编织过程。 4. **Spring Boot**:基于Spring框架的快速开发工具,内建对AOP的支持,并且简化了项目配置。 5. **Logback...

    aopalliance最新完整jar包

    在Java应用中,aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的...

    spring aop jar 包

    3. **切点(Pointcut)**:切点是程序执行过程中的特定点,如某个方法的执行。切点通过切点表达式来定义,表达式通常基于方法签名,如方法名、参数类型等。 4. **连接点(Join Point)**:连接点是切点在实际运行时...

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    面向切面编程(AOP)是一种编程范式,旨在将横切关注点(如日志、安全等)与业务逻辑分离,从而提高模块化。AOP通过预定义的“切面”对横切关注点进行模块化,从而可以在不修改业务逻辑代码的情况下增加新功能。动态...

    开发工具 aopalliance-1.0

    开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具...

    Spring AOP面向方面编程原理:AOP概念

    3. **灵活的通知模型**:Spring AOP提供了多种类型的通知,包括around、before、after returning、after throwing等,使得开发者可以根据实际需求选择最适合的通知类型。 4. **丰富的切入点表达式语言**:Spring ...

    简单spring aop 例子

    3. **创建服务类**:定义一个被切面拦截的服务类,例如`UserService`,包含一个方法`sayHello()`: ```java package com.example.service; public class UserService { public void sayHello(String name) { ...

    aopalliance

    3. 跨框架协作:由于AOPAlliance提供了一套通用的接口,不同AOP框架的组件可以互相协作,增强了整个Java生态系统的兼容性和互操作性。 三、aopalliance.jar的使用 aopalliance.jar是AOPAlliance项目的实现库,包含...

    spring-aop-jar

    在IT领域,Spring框架是一个广泛使用的Java应用框架,它提供了许多功能,包括依赖注入、面向切面编程(AOP)等。"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨...

    springAOP所依赖的jar包

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许程序员定义“切面”,这些切面可以封装跨越多个对象的行为或责任。在Java应用中实现AOP通常需要依赖于一些外部库,这些库在你提供的标题和描述中有所...

    aopalliance-white-paper(AOP Alliance白皮书)

    ### AOP Alliance 白皮书核心知识点解析 #### 一、引言 AOP(Aspect Oriented Programming,面向切面编程)是一种编程范式,它旨在通过将横切关注点(cross-cutting concerns)从业务逻辑中分离出来,提高系统的...

Global site tag (gtag.js) - Google Analytics