[size=small]
spring aop 的作用是
1 每一个事务逻辑位于一个位置,代码不离散,便于维护与升级。
2 业务模块更简洁,只包含核心代码。
完成aop功能的方式还有动态代理,但是动态代理要求较高,所以aop更被广泛使用。
其配置包括基于注解方式和xml配置。这里先标记注解。
[/size]
spring aop 的作用是
1 每一个事务逻辑位于一个位置,代码不离散,便于维护与升级。
2 业务模块更简洁,只包含核心代码。
完成aop功能的方式还有动态代理,但是动态代理要求较高,所以aop更被广泛使用。
其配置包括基于注解方式和xml配置。这里先标记注解。
[/size]
第一步 编写横切面和关注点,横切面类必须交给spring容器管理,并且标记为横切面。
@Aspect
@Component
public class AspejctBean {
@Before("execution(public int com.jfn.spring.aop.impl.UserserviceImpl.add(int,int))")
public void beforceclass(JoinPoint joinpoint){
// 方法签名和参数
System.out.println(joinpoint.getSignature()+"---"+Arrays.asList(joinpoint.getArgs()));
System.out.println("这是开始啊");
}
}
这里只写入了 前置,其他还包括 后置通知 环绕通知 异常通知 返回值通知等类型。
通知里面的 执行方法注解 不做解释。
第二部 配置 上下文文件
<context:component-scan base-package="com.jfn.spring.aop"></context:component-scan>
<!-- 使aspectj 起作用,自动为匹配的类生成代理对象 -->
<aop:aspectj-autoproxy ></aop:aspectj-autoproxy>