`
twh1224
  • 浏览: 95984 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

采用Annotation实现AOP

阅读更多
导入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的DEMO"主要介绍了如何在EJB中利用注解(Annotation)来实现AOP的功能。在Java EE中,EJB 3.0及后续版本引入了大量的注解,使得开发者可以免去编写XML配置文件,直接在代码中声明...

    基于annotation的aop实现

    基于Annotation的AOP实现是Spring框架的一个重要特性,它极大地简化了AOP的使用。在本篇文章中,我们将深入探讨基于Annotation的AOP实现,特别是动态代理的理念。 首先,了解什么是AOP。AOP的核心概念是“切面”...

    Spring_Annotation_AOP

    在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...

    Spring采用Annotation方式实现AOP

    NULL 博文链接:https://tianhei.iteye.com/blog/978969

    spring学习之五“AOP概念及使用Annotation的实现”

    本篇“spring学习之五”主要介绍的是注解驱动的AOP实现。 1. **定义切面**:在Spring中,我们通常通过创建一个带有`@Aspect`注解的类来定义切面。在这个类中,我们可以定义切点和通知。例如: ```java @Aspect ...

    spring aop实例annotation方法实现

    本实例将详细探讨如何通过注解(Annotation)来实现Spring AOP的方法拦截。 一、Spring AOP基础 Spring AOP是Spring框架的一部分,它提供了一种在运行时织入横切关注点(如日志、事务管理等)到目标对象的能力。AOP...

    学习Spring笔记_AOP_Annotation实现和XML实现

    本笔记主要聚焦于Spring框架中的重要概念——面向切面编程(AOP),并对比讲解了两种实现方式:注解(Annotation)实现和XML配置实现。AOP允许我们在程序执行过程中插入自定义的行为,如日志记录、事务管理等,使得...

    Spring mvc Aop+annotation实现系统日志记录功能实现的jar包

    Spring mvc Aop+annotation实现系统日志记录功能实现的jar包asm-3.3.jar ,aspectjrt.jar , aspectjweaver.jar , cglib-nodep-2.1_3.jar , spring-aop.jar

    Spring 基于基于XML配置方式实现AOP

    本篇文章将重点讲解如何通过XML配置方式在Spring中实现AOP。 首先,了解AOP的基本概念是必要的。AOP的核心是切面(Aspect),它封装了多个相关操作,形成了一个关注点。切点(Pointcut)定义了这些操作应用到何处,...

    注解实现AOP通知

    AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要特性,它提供了一种模块化和声明式的方式来处理...在实际项目中,结合使用这些注解可以实现各种复杂的切面功能,提升软件设计的质量和效率。

    利用 spring annotation AOP 反射 记录日志

    在这种场景下,我们常常利用注解来实现AOP,以便于记录日志。注解AOP使得代码更加简洁、可读性更强,而反射则是实现这一目标的关键技术之一。下面我们将详细探讨如何利用Spring的注解AOP和反射来实现日志记录。 ...

    Spring 使用AspectJ 实现 AOP之前置通知小例子

    标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子",指的是利用AspectJ在Spring中实现AOP的一种特定类型的通知——前置通知(Before advice)。前置通知在目标方法执行之前运行,但不会阻止方法的执行。这种...

    Spring通过注解实现AOP

    本篇文章将详细探讨如何通过注解在Spring中实现AOP。 首先,我们需要理解AOP的基本概念。AOP的核心思想是将那些分散在各个业务逻辑中的共同行为,如日志记录、事务处理、性能监控等,抽取出来,形成独立的模块,...

    Spring学习笔记(16)----使用Spring配置文件实现AOP

    在本篇Spring学习笔记中,我们将深入探讨如何利用Spring配置文件来实现面向切面编程(AOP)。面向切面编程是Spring框架的核心特性之一,它允许我们把关注点分离,将横切关注点(如日志、事务管理、权限控制等)与...

    spring中aop的简单使用(Annotation方式)

    在Spring中,我们可以通过以下步骤实现AOP的注解配置: 1. **启用AOP代理**:在Spring配置文件中,我们需要开启基于注解的AOP支持。如果使用XML配置,可以添加`&lt;aop:aspectj-autoproxy&gt;`元素;如果是Java配置,可以...

    spring 2.0使用AOP实例(基于Annotation的配置方式)

    这篇博客文章将探讨如何在Spring 2.0中使用AOP实例,特别是通过注解来实现。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了横切关注点,即那些跨越多个对象的行为或责任。在Spring中,切...

    spring中自定义注解(annotation)与AOP中获取注解

    在Spring框架中,自定义注解(Annotation)和AOP(面向切面编程)的结合使用,极大地增强了代码的可读性和可维护性。本文将深入探讨如何在Spring中创建自定义注解以及如何在AOP中有效地获取并利用这些注解。 首先,...

Global site tag (gtag.js) - Google Analytics