spring对AOP的支持(采用Annotation方式)
来源:互联网 发布:淘宝开店卖家警骗局 编辑:程序博客网 时间:2024/05/16 23:42
spring对AOP的支持(采用Annotation方式)
1、spring的依赖包配置
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
* SPRING_HOME/lib/aspectj/*.jar
2、将横切性关注点模块化,建立SecurityHandler.java
3、采用注解指定SecurityHandler为Aspect
4、采用注解定义Advice和Pointcut
5、启用AspectJ对Annotation的支持,并且将目标类和Aspect类配置到IoC容器中
AOP主要概念:
Cross Cutting Concern
是一种独立服务,它会遍布在系统的处理流程之中
Aspect
对横切性关注点的模块化
Advice
对横切性关注点的具体实现
Pointcut
它定义了Advice应用到哪些JoinPoint上,对Spring来说是方法调用、
JoinPoint
Advice在应用程序上执行的点或时机,Spring只支持方法的JoinPoint,这个点也可以使属性修改,如:Aspecj可以支持
Weave
将Advice应用到Target Object上的过程叫织入,Spring支持的是动态织入
Target Object
Advice被应用的对象
Proxy
Spring AOP默认使用JDK的动态代理,它的代理是运行时创建,也可以使用CGLIB代理
Introduction
可以动态的为类添加方法
1、spring的依赖包配置
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
* SPRING_HOME/lib/aspectj/*.jar
2、将横切性关注点模块化,建立SecurityHandler.java
package com.mwh.spring;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;@Aspectpublic class SecurityHandler {/** * 定义Pointcut ,Pointcut的名称为addAddMethod(),此方法没有返回值和参数 * 该方法就是一个标识,不进行调用 */@Pointcut("execution(* add*(..))")private void addAddMethod(){};/** * 定义Advice,标识我们的Advice应用到哪些Pointcut订阅的Joinpoint上 */@Before("addAddMethod()")private void checkSecurity(){System.out.println("检查安全性");};}
3、采用注解指定SecurityHandler为Aspect
4、采用注解定义Advice和Pointcut
5、启用AspectJ对Annotation的支持,并且将目标类和Aspect类配置到IoC容器中
<aop:aspectj-autoproxy/><bean id="securityHandler" class="com.mwh.spring.SecurityHandler"/><bean id="userManager" class="com.mwh.service.imp.IuserManager" ><property name="sessionFactory" ref="sessionFactory"/></bean>6、开发客户端
public static void main(String[] args) { BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext-*.xml"); UserManager userManager=(UserManager) factory.getBean("userManager"); User user= new User(); user.setUsername("mwh"); userManager.add(user); }结果:
检查安全性IuserManager add()
AOP主要概念:
Cross Cutting Concern
是一种独立服务,它会遍布在系统的处理流程之中
Aspect
对横切性关注点的模块化
Advice
对横切性关注点的具体实现
Pointcut
它定义了Advice应用到哪些JoinPoint上,对Spring来说是方法调用、
JoinPoint
Advice在应用程序上执行的点或时机,Spring只支持方法的JoinPoint,这个点也可以使属性修改,如:Aspecj可以支持
Weave
将Advice应用到Target Object上的过程叫织入,Spring支持的是动态织入
Target Object
Advice被应用的对象
Proxy
Spring AOP默认使用JDK的动态代理,它的代理是运行时创建,也可以使用CGLIB代理
Introduction
可以动态的为类添加方法
- spring对AOP的支持(采用Annotation的方式)
- spring对AOP的支持(采用Annotation方式)
- spring对AOP的支持(采用配置文件的方式)
- spring对AOP的支持(采用配置方式)
- Spring---->采用Annotation的方式实现AOP
- Spring的AOP支持 使用Annotation方式
- Annotation(注解)的方式对AOP的支持
- 采用annotation的方式配置Spring的IOC和AOP/采用XML的方式配置Spring的IOC和AOP
- 采用Annotation方式实现AOP
- AOP采用Annotation声明方式
- 【AOP系列】(三)—采用Spring的注解(Annotation)实现AOP
- spring对AOP的支持
- Spring对AOP的支持
- Spring对AOP的支持
- spring对AOP的支持
- spring对AOP的支持
- Spring 对 AOP 的支持
- Spring对AOP的支持
- 13-5-16 Android自定义空间实现wifi信号强度
- 关于android新的开发工具android_studio的下载和问题处理
- JS网页刷新
- java文件操作
- 对指针、引用的理解(三)【引用】
- spring对AOP的支持(采用Annotation方式)
- 一个linaro 1304 log使用编译错误
- NoSql
- 各种程序设计语言的发明者
- Java读写二进制文件
- C#调用微软在线翻译API实现简单的翻译功能
- TextField 小结
- keyboard实战
- 让Delphi的DataSnap发挥最大效率