Spring采用Annotation方式实现AOP
Spring可以采用Annotation方式实现AOP,也可以采用配置文件方式实现AOP。本文讲解采用Annotation方式。
?
当采用Annotation的方式实现AOP时,需要引入除spring以外的以下jar包(请在附件下载):
aspectjlib-1.5.0.jar
aspectjweaver.jar
aopalliance-1.0.jar
?
面向接口编程:UserManager.java
package com.cos;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Client {public static void main(String[] args) {BeanFactory beanFactory = new ClassPathXmlApplicationContext("applicationContext.xml");UserManager userManager = (UserManager)beanFactory.getBean("userManagerImpl");userManager.createUser();userManager.updateUser();userManager.readUser();}}?
?输出结果为:
------安全性检查------
-----------------createUser-------------------
------安全性检查------
-----------------updateUser-------------------
-----------------readUser-------------------
?
注:
目标对象UserManagerImpl一定要实现一个接口,原因是spring 的AOP用的就是jdk的动态代理机制,而jdk的动态代理机制要求目标对象一定要实现一个接口,这样代理对象也实现同样的这个接口,便完成了代理功能。
?
?
?
?