导入spring库文件
1. spring-framework-2.0\dist\spring.jar
2. spring-framework-2.0\lib\jakarta-commons\commons-logging.jar
3. spring-framework-2.0\lib\log4j\log4j-1.2.14.jar
4. spring-framework-2.0\lib\aspectj\*.jar
采用@Aspect定义切面
/**
* 定义Aspect
* @author Administrator
*
*/
@Aspect
public class SecurityHandler {
/**
* 定义Pointcut,Pointcut的名称就是allAddMethod
* 此方法不能有返回值和参数,此方法只是一个标识
* Pointcut中是个表达式,表示那些方法(订阅JoinPoint)
*/
@Pointcut("execution(* add*(..))|| execution(* del*(..))")
private void allAddMethod(){};
@Before("allAddMethod()")
private void chechSecurity(){
System.out.println("---------chechSecurity----------");
}
}
在配置文件中启用Aspectj对Annotation的支持
<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">
<aop:aspectj-autoproxy/>
<bean id="SecurityHandler" class="com.twh.spring.SecurityHandler"/>
<bean id="UserManagerImpl" class="com.twh.spring.UserManagerImpl"/>
</beans>
目标类的接口
public interface UserManager {
public void addUser(String username,String password);
public void deleteUser(int id);
public void modifyUser(int id,String username,String password);
public String findUserById(int id);
}
目标类
public class UserManagerImpl implements UserManager {
public void addUser(String username, String password) {
System.out.println("---------addUser----------");
}
public void deleteUser(int id) {
System.out.println("---------deleteUser----------");
}
public String findUserById(int id) {
System.out.println("---------findUserById----------");
return null;
}
public void modifyUser(int id, String username, String password) {
System.out.println("---------modifyUser----------");
}
}
客户端访问:
public class Client {
public static void main(String[] args){
BeanFactory bf = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager um = (UserManager)bf.getBean("UserManagerImpl");
um.addUser("aaaa", "213213");
um.deleteUser(123);
}
}
分享到:
相关推荐
这篇博客"使用EJB+Annotation实现AOP的DEMO"主要介绍了如何在EJB中利用注解(Annotation)来实现AOP的功能。在Java EE中,EJB 3.0及后续版本引入了大量的注解,使得开发者可以免去编写XML配置文件,直接在代码中声明...
基于Annotation的AOP实现是Spring框架的一个重要特性,它极大地简化了AOP的使用。在本篇文章中,我们将深入探讨基于Annotation的AOP实现,特别是动态代理的理念。 首先,了解什么是AOP。AOP的核心概念是“切面”...
在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...
NULL 博文链接:https://tianhei.iteye.com/blog/978969
本篇“spring学习之五”主要介绍的是注解驱动的AOP实现。 1. **定义切面**:在Spring中,我们通常通过创建一个带有`@Aspect`注解的类来定义切面。在这个类中,我们可以定义切点和通知。例如: ```java @Aspect ...
本实例将详细探讨如何通过注解(Annotation)来实现Spring AOP的方法拦截。 一、Spring AOP基础 Spring AOP是Spring框架的一部分,它提供了一种在运行时织入横切关注点(如日志、事务管理等)到目标对象的能力。AOP...
本笔记主要聚焦于Spring框架中的重要概念——面向切面编程(AOP),并对比讲解了两种实现方式:注解(Annotation)实现和XML配置实现。AOP允许我们在程序执行过程中插入自定义的行为,如日志记录、事务管理等,使得...
Spring mvc Aop+annotation实现系统日志记录功能实现的jar包asm-3.3.jar ,aspectjrt.jar , aspectjweaver.jar , cglib-nodep-2.1_3.jar , spring-aop.jar
本篇文章将重点讲解如何通过XML配置方式在Spring中实现AOP。 首先,了解AOP的基本概念是必要的。AOP的核心是切面(Aspect),它封装了多个相关操作,形成了一个关注点。切点(Pointcut)定义了这些操作应用到何处,...
AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要特性,它提供了一种模块化和声明式的方式来处理...在实际项目中,结合使用这些注解可以实现各种复杂的切面功能,提升软件设计的质量和效率。
在这种场景下,我们常常利用注解来实现AOP,以便于记录日志。注解AOP使得代码更加简洁、可读性更强,而反射则是实现这一目标的关键技术之一。下面我们将详细探讨如何利用Spring的注解AOP和反射来实现日志记录。 ...
标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子",指的是利用AspectJ在Spring中实现AOP的一种特定类型的通知——前置通知(Before advice)。前置通知在目标方法执行之前运行,但不会阻止方法的执行。这种...
本篇文章将详细探讨如何通过注解在Spring中实现AOP。 首先,我们需要理解AOP的基本概念。AOP的核心思想是将那些分散在各个业务逻辑中的共同行为,如日志记录、事务处理、性能监控等,抽取出来,形成独立的模块,...
在本篇Spring学习笔记中,我们将深入探讨如何利用Spring配置文件来实现面向切面编程(AOP)。面向切面编程是Spring框架的核心特性之一,它允许我们把关注点分离,将横切关注点(如日志、事务管理、权限控制等)与...
在Spring中,我们可以通过以下步骤实现AOP的注解配置: 1. **启用AOP代理**:在Spring配置文件中,我们需要开启基于注解的AOP支持。如果使用XML配置,可以添加`<aop:aspectj-autoproxy>`元素;如果是Java配置,可以...
这篇博客文章将探讨如何在Spring 2.0中使用AOP实例,特别是通过注解来实现。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了横切关注点,即那些跨越多个对象的行为或责任。在Spring中,切...
在Spring框架中,自定义注解(Annotation)和AOP(面向切面编程)的结合使用,极大地增强了代码的可读性和可维护性。本文将深入探讨如何在Spring中创建自定义注解以及如何在AOP中有效地获取并利用这些注解。 首先,...