建立工程,导入jar包
1、首先说一下基于XMl方式的AOP配置,就从helloword开始吧
2、数据访问层省略,直接进到业务层
建立com.springdemo.service包以及他的实现包
建立一个借口
package com.springdemo.service;
public interface IHelloworldService {
public void sayHello();
}
建立他的实现类
package com.springdemo.service.impl;
import com.springdemo.service.IHelloworldService;
public class HellowoldService implements IHelloworldService{
public void sayHello() {
System.out.println("Hello World");
}
}
创建一个切面类
package com.springdemo.aspect;
public class HelloAspect {
public void beforeAdvice(){
System.out.println("前置增强");
}
public void afterAdvice(){
System.out.println("后置增强");
}
}
实际也不算是切面类
下面进入到XML的配置
配置一个目标实现类的bean和切面类的bean
<!--配置目标类,配置的是实现方法 -->
<bean id="helloworldService" class="com.springdemo.service.impl.HellowoldService"/>
<!--配置切面 -->
<bean id="helloAspect" class="com.springdemo.aspect.HelloAspect"/>
下面进行切面的配置:
<!--配置切点 -->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.springdemo.service.impl.*.*(..))"/><!--配置切点 第一个*代表所有的返回值类型,第二个*代表所有的类,第三个*代表类所有方法,最后一个..代表所有的参数。 -->
<aop:aspect ref="helloAspect"> <!-- 配置切面,引入切面类的bean-->
<aop:before method="beforeAdvice" pointcut-ref="pointcut" />
<aop:after method="afterAdvice" pointcut="execution(* com.springdemo.service.impl.*.*(..))"/><!--在aop的增强中,可以通过pointcut-ref来制定原有的切入点,也可以通过pointcut来定义切入点,二者不能同时使用-->
</aop:aspect>
</aop:config>
再写个测试类就OK了,效果如下图:
基于XML的简单配置就完成了
下面说一下基于注解的配置:
想要使用注解的方式,就要在配置文件中加入
<!--支持注解方式的aop-->
<aop:aspectj-autoproxy/>
这样才能支持注解的方式
业务层的没有任何变化,在切面类中加入一个point方法,用来注入切入点
@Pointcut("execution(* com.springdemo.service.impl.*.*(..))")
public void point(){ //声明切入点 ,切入点的表达式
}
把原来XML里的<aop:config/>一段给注释掉,在切面类中的前置增强和后置增强的方法稍作修改,修改如下
@Aspect
public class HelloAspect {
......
@Before("point()")
public void beforeAdvice(){
System.out.println("前置增强");
}
@After("point()")
public void afterAdvice(){
System.out.println("后置增强");
}
}
再次测试一下,与基于XML的结果一样
简单的注解方式的AOP配置就完成了,比较简单,留下来以后复习,关于带参的@Aspect以及概念,请看http://jinnianshilongnian.iteye.com/blog/1420689
这一系列的文章(感觉太多了,记不住)
- 大小: 1 KB
分享到:
相关推荐
本篇文章将深入探讨如何使用注解方式在Spring AOP中实现内部方法的拦截。 首先,理解AOP的基本概念至关重要。AOP的核心是切面(Aspect),它封装了横切关注点,即那些跨越多个对象的业务逻辑,如日志记录、事务管理...
下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...
本篇文章将深入探讨如何通过Spring的注解方式实现AOP的细节。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越多个对象的行为或责任。切点(Pointcut)定义了哪些方法会被通知(Advice...
在Spring框架中,AOP(面向切面编程)是一...Spring AOP注解的应用使得切面编程更加简单直观,大大简化了对横切关注点的管理。在实际开发中,结合Spring提供的其他特性,如事务管理,可以构建出高效、健壮的后端系统。
在这个"SpringAOP注解方式"的示例中,我们将深入探讨如何使用注解来实现Spring AOP的功能。 首先,Spring AOP通过两种主要的方式来定义切面:XML配置和注解。本示例主要关注注解方式,因为它提供了更简洁、更直观的...
总结起来,Spring AOP注解版通过简单易懂的注解,使得面向切面编程变得更加直观和方便。它降低了横切关注点与业务逻辑之间的耦合度,提高了代码的可维护性和复用性。通过合理利用这些注解,开发者可以轻松地实现日志...
下面将详细探讨如何在Spring中通过注解方式进行AOP编程。 首先,我们要确保引入了Spring框架的基础开发包,这通常包括`spring-context`、`spring-beans`、`spring-core`等核心模块,这些模块提供了IoC(控制反转)...
基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop
2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、可在现有源码上快速进行功能扩展 4、spring boot,mybatis,druid,spring aop的使用
**Spring AOP 注解例子详解** 在 Spring 框架中,面向切面编程(Aspect Oriented Programming,AOP)是一种强大的设计模式,它允许我们分离关注点,将业务逻辑与系统服务(如日志、事务管理等)解耦。在 Spring AOP...
总结来说,这个Spring AOP注解方式的Demo展示了如何通过简单的注解定义切面、切点和通知,实现对业务逻辑的无侵入式增强。这种方式使得代码更简洁、可读性更强,同时也充分利用了Spring框架的优势。对于理解和实践...
Spring AOP注解方式是Spring框架提供的一种面向切面编程的实现方式,它允许开发者在不修改原有业务代码的情况下,插入额外的功能,如日志记录、性能监控、安全控制、事务管理和异常处理等。这种方式极大地简化了代码...
在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限...希望本教程对理解和应用Spring AOP注解方式有所帮助,实践中不断探索和优化,将能更好地发挥AOP的优势。
通过注解方式实现的Spring AOP使得代码更简洁,更易于理解和维护。这种方式避免了XML配置,使代码更加声明式,更符合现代Java开发的习惯。同时,Spring AOP提供了丰富的通知类型,可以根据实际需求灵活选择。理解并...
在Spring中,我们通常使用基于注解的AOP,它简化了配置并使代码更易读。 二、注解驱动的AOP 1. 定义切面(Aspect):首先,我们需要创建一个切面类,这个类通常包含通知(Advice),也就是实际的日志记录方法。使用...
在Spring AOP中,我们可以通过注解配置来实现切面编程,从而简化代码并提高可维护性。 首先,我们需要了解Spring AOP中的核心概念: 1. **切面(Aspect)**:切面是关注点的模块化,它包含了横切关注点(如日志)和...
在使用Spring AOP时,我们可以通过XML配置或注解的方式来定义切面。例如,可以使用`@Aspect`注解定义一个切面类,`@Before`、`@After`等注解来声明通知,`@Pointcut`定义切点表达式。 在实际开发中,Spring AOP广泛...
本篇将深入讲解如何通过注解来配置Spring AOP,以实现更加简洁、高效的代码编写。 首先,我们来看注解在Spring AOP中的应用。在传统的AOP配置中,我们需要定义切入点表达式和通知(advice)在XML配置文件中。然而,...
Spring支持两种AOP的实现方式:Spring AspectJ注解风格和Spring XML配置风格。使用AspectJ注解风格是最常见的,它允许开发者直接在方法上使用注解来定义切面。 Spring AOP中有五种不同类型的的通知(Advice): 1....
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来实现横切关注点,如日志、事务管理、性能监控等。这些关注点通常与业务逻辑无关,但又在多个地方被用到,AOP就是为了...