`
yingruochen
  • 浏览: 75391 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Spring AOP的注解方式

阅读更多

建立工程,导入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
分享到:
评论
1 楼 myemptyname 2012-06-05  

相关推荐

    Spring AOP 注解方式

    本篇文章将深入探讨如何使用注解方式在Spring AOP中实现内部方法的拦截。 首先,理解AOP的基本概念至关重要。AOP的核心是切面(Aspect),它封装了横切关注点,即那些跨越多个对象的业务逻辑,如日志记录、事务管理...

    spring aop注解方式、xml方式示例

    下面将详细介绍Spring AOP的注解方式和XML配置方式。 ### 注解方式 #### 1. 定义切面(Aspect) 在Spring AOP中,切面是包含多个通知(advisors)的类。使用`@Aspect`注解标记切面类,例如: ```java @Aspect ...

    使用Spring的注解方式实现AOP的细节

    本篇文章将深入探讨如何通过Spring的注解方式实现AOP的细节。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了跨越多个对象的行为或责任。切点(Pointcut)定义了哪些方法会被通知(Advice...

    spring AOP注解的应用1

    在Spring框架中,AOP(面向切面编程)是一...Spring AOP注解的应用使得切面编程更加简单直观,大大简化了对横切关注点的管理。在实际开发中,结合Spring提供的其他特性,如事务管理,可以构建出高效、健壮的后端系统。

    SpringAOP注解特棒例子

    在这个"SpringAOP注解方式"的示例中,我们将深入探讨如何使用注解来实现Spring AOP的功能。 首先,Spring AOP通过两种主要的方式来定义切面:XML配置和注解。本示例主要关注注解方式,因为它提供了更简洁、更直观的...

    spring aop注解版

    总结起来,Spring AOP注解版通过简单易懂的注解,使得面向切面编程变得更加直观和方便。它降低了横切关注点与业务逻辑之间的耦合度,提高了代码的可维护性和复用性。通过合理利用这些注解,开发者可以轻松地实现日志...

    spring aop注解方式代码

    下面将详细探讨如何在Spring中通过注解方式进行AOP编程。 首先,我们要确保引入了Spring框架的基础开发包,这通常包括`spring-context`、`spring-beans`、`spring-core`等核心模块,这些模块提供了IoC(控制反转)...

    基于注解实现SpringAop

    基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop

    spring aop 自定义注解保存操作日志到mysql数据库 源码

    2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、可在现有源码上快速进行功能扩展 4、spring boot,mybatis,druid,spring aop的使用

    spring aop 注解例子

    **Spring AOP 注解例子详解** 在 Spring 框架中,面向切面编程(Aspect Oriented Programming,AOP)是一种强大的设计模式,它允许我们分离关注点,将业务逻辑与系统服务(如日志、事务管理等)解耦。在 Spring AOP...

    Spring注解方式实现AOP demo

    总结来说,这个Spring AOP注解方式的Demo展示了如何通过简单的注解定义切面、切点和通知,实现对业务逻辑的无侵入式增强。这种方式使得代码更简洁、可读性更强,同时也充分利用了Spring框架的优势。对于理解和实践...

    spingAOP注解方式

    Spring AOP注解方式是Spring框架提供的一种面向切面编程的实现方式,它允许开发者在不修改原有业务代码的情况下,插入额外的功能,如日志记录、性能监控、安全控制、事务管理和异常处理等。这种方式极大地简化了代码...

    spring注解方式实现aop

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限...希望本教程对理解和应用Spring AOP注解方式有所帮助,实践中不断探索和优化,将能更好地发挥AOP的优势。

    用注解的方式进行SpringAOP开发

    通过注解方式实现的Spring AOP使得代码更简洁,更易于理解和维护。这种方式避免了XML配置,使代码更加声明式,更符合现代Java开发的习惯。同时,Spring AOP提供了丰富的通知类型,可以根据实际需求灵活选择。理解并...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring中,我们通常使用基于注解的AOP,它简化了配置并使代码更易读。 二、注解驱动的AOP 1. 定义切面(Aspect):首先,我们需要创建一个切面类,这个类通常包含通知(Advice),也就是实际的日志记录方法。使用...

    SpringAOP的注解配置

    在Spring AOP中,我们可以通过注解配置来实现切面编程,从而简化代码并提高可维护性。 首先,我们需要了解Spring AOP中的核心概念: 1. **切面(Aspect)**:切面是关注点的模块化,它包含了横切关注点(如日志)和...

    spring aop jar 包

    在使用Spring AOP时,我们可以通过XML配置或注解的方式来定义切面。例如,可以使用`@Aspect`注解定义一个切面类,`@Before`、`@After`等注解来声明通知,`@Pointcut`定义切点表达式。 在实际开发中,Spring AOP广泛...

    spring注解aop配置详解

    本篇将深入讲解如何通过注解来配置Spring AOP,以实现更加简洁、高效的代码编写。 首先,我们来看注解在Spring AOP中的应用。在传统的AOP配置中,我们需要定义切入点表达式和通知(advice)在XML配置文件中。然而,...

    Spring AOP 16道面试题及答案.docx

    Spring支持两种AOP的实现方式:Spring AspectJ注解风格和Spring XML配置风格。使用AspectJ注解风格是最常见的,它允许开发者直接在方法上使用注解来定义切面。 Spring AOP中有五种不同类型的的通知(Advice): 1....

    spring-aop和注解的实例

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来实现横切关注点,如日志、事务管理、性能监控等。这些关注点通常与业务逻辑无关,但又在多个地方被用到,AOP就是为了...

Global site tag (gtag.js) - Google Analytics