从spring容器获得目标类,如果配置aop,spring将自动生成代理。
要确定目标类,aspectj 切入点表达式,导入jar包
spring-framework-3.0.2.RELEASE-
dependencies\org.aspectj\com.springsource.org.aspectj.weaver\1.6.8.RELEASE
1.目标类
public interface UserService {
public void addUser();
public void updateUser();
public void deleteUser();
}
2.切面类
/**
* 切面类中确定通知,需要实现不同接口,接口就是规范,从而就确定方法名称。
* * 采用“环绕通知” MethodInterceptor
*
*/
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class MyAspect implements MethodInterceptor{
public Object invoke(MethodInvocation mi) throws Throwable {
System.out.println("开启事务");
//手动执行目标方法
Object obj = mi.proceed();
System.out.println("提交事务");
return obj;
}
}
3.spring配置
<!-- 1 创建目标类 -->
<bean id="userService" class="cn.ithuplion.spring_aop.UserServiceImpl"></bean>
<!-- 2 创建切面类(通知) -->
<bean id="myAspect" class="cn.ithuplion.spring_aop.MyAspect"></bean>
<!-- 3 aop编程
3.1 导入命名空间
3.2 使用 <aop:config>进行配置
proxy-target-class="true" 声明时使用cglib代理
<aop:pointcut> 切入点 ,从目标对象获得具体方法
<aop:advisor> 特殊的切面,只有一个通知 和 一个切入点
advice-ref 通知引用
pointcut-ref 切入点引用
3.3 切入点表达式
execution(* com.itheima.c_spring_aop.*.*(..))
选择方法 返回值任意 包 类名任意 方法名任意 参数任意
-->
<aop:config>
<aop:pointcut expression="execution(* 包名.*.*(..))" id="mypointcut"/>
<aop:advisor advice-ref="myAspect" pointcut-ref="mypointcut"/>
</aop:config>
4.测试
@Test
public void test1(){
ApplicationContext applicationContext=new
ClassPathXmlApplicationContext("cn/ithuplion/spring_aop/bean.xml");
UserService userService = (UserService)
applicationContext.getBean("userService");
userService.addUser();
userService.updateUser();
userService.deleteUser();
}
分享到:
相关推荐
在讨论Spring AOP(面向切面编程)时,首先需要理解几个核心概念。Spring AOP 是Spring框架提供的一个功能模块,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中解耦出来,通过在方法调用前后进行...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的核心概念是切面(Aspect)、通知(Advice)、连接点...
**Spring AOP编程实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的核心特性之一,它提供了一种在不修改原有代码的情况下,通过插入额外的行为(如日志、事务管理等)来增强功能的...
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...
【Spring AOP编程】是Java开发中的一个重要概念,它代表了面向切面编程(Aspect-Oriented Programming)在Spring框架中的应用。AOP的核心思想是将关注点分离,即将横切关注点(如日志、事务管理、安全性等)与核心...
在Java开发领域,Spring框架是不可或缺的一部分,而Spring AOP(面向切面编程)则是Spring框架中的重要特性,它提供了一种优雅的方式来处理系统中的横切关注点,如日志、事务管理等。本篇文章将深入探讨如何通过XML...
在Java EE环境中,Spring框架是企业级应用开发的首选,其中Spring AOP(Aspect-Oriented Programming,面向切面编程)是其核心组件之一。面向切面编程是一种编程范式,旨在提高代码的可重用性和模块化,通过将关注点...
在本文档中,作者田超凡探讨了Spring AOP(面向切面编程)的实现,主要涉及了两种代理模式:静态代理和JDK动态代理。这两种代理方式都是为了实现AOP的核心理念,即在不修改原有业务代码的情况下,对代码进行横切关注...
Spring AOP 编程 Spring AOP(Aspect-Oriented Programming,面向切面编程)是一种编程技术,它可以将横切关注点从核心业务逻辑中分离出来,提高系统的可维护性、可扩展性和灵活性。AOP 是 OOP 的补充和完善,可以...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。这个"spring aop jar 包"包含了实现这一功能所需的类和接口,...
在Java编程领域,Spring AOP(面向切面编程)是一种强大的设计模式,它允许程序员将关注点分离到单独的模块,这些模块可以独立于主业务逻辑进行管理。本教程将重点讲解如何通过注解方式来实现Spring AOP,并提供相关...
实战示例
Spring AOP,全称为Aspect Oriented Programming,是面向切面编程的一种编程范式,它是对传统的面向对象编程(OOP)的一种补充。在OOP中,核心是对象,而在AOP中,核心则是切面。切面是关注点的模块化,即程序中的...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...
在本篇博客“Spring基础:AOP编程(4)”中,我们将深入探讨Spring框架中的面向切面编程(Aspect-Oriented Programming,简称AOP),这是一个强大的功能,它允许我们在不修改原有业务代码的情况下,实现对系统中横切...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它扩展了传统的面向对象编程,使得开发者可以方便地实现横切关注点,如日志、事务管理、性能监控等。在Spring中,AOP通过代理...
Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许开发者在不修改源代码的情况下,通过插入切面来增强或改变程序的行为。在本教程中,我们将深入探讨Spring AOP的不同使用方法,包括定义切点、通知类型...