`
noble510520
  • 浏览: 56532 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring aop注解配置

阅读更多

spring aop是面向切面编程,使用了动态代理的技术,这样可以使业务逻辑的代码不掺入其他乱七八糟的代码

可以在切面上实现合法性校验、权限检验、日志记录。。。

spring aop 用的多的有两种配置方法:注解配置和xml配置

注解配置更好,友好重构、错误也好检查在这里只讲注解配置

aop概念

  • 切面:切面类,里面有切点有通知,切面包括了一切(在哪切,干什么)
  • 切点:定义了在个地方切
  • 通知:定义了在切点处做些什么
  • 连接点:所有可以被切的地方

切面配置

@Aspect
public class LibraryAOPConf {}

@Aspect标记的类即是一个切面,在这个类中定义切面和通知

开启自动代理

因为AOP是代理实现的,将切面放进bean容器是不会生成代理对象的,所以要开启自动代理

@Configuration
@EnableAspectJAutoProxy
public class LibraryConf {}

在装配bean的配置类加上@EnableAspectJAutoProxy就可以了或者在xml中加上<aop:aspectj-autoproxy>

切点配置

配置切点需要用到切点表达式

 微信截图_20160714000631当通知方法需要拿到切点的参数的时候,就需要参数传递

@Pointcut("execution(* aop.library.BookShop.sell(Book))"+"&&"+"args(book)")
 public void sell(Book book){}
 @Before("sell(book)")
 public void charge(Book book){
   System.out.println("这本书叫:"+book);
 }

切点拦截了aop.library.BookShop.sell(Book)方法,并且将参数Book赋给了sell(book)切点方法,然后通知方法又获取了切点方法中的book

通知配置

 //基于切点表达式配置
 @Before("execution (* *.*.*(..))")//*号依次为返回类型、包名、类名、方法名
 public void charge(Book book){
  System.out.println("这本书叫:"+book);
 }
 //基于切点配置
 @Before("sell(book)")//sell(book)是一个切点
 public void charge(Book book){
  System.out.println("这本书叫:"+book);
 }

通知有5种类型:

  • 前置通知@Before
  • 后置通知(不管是否异常)@After
  • 异常通知@AfterThrowing
  • 返回通知@AfterReturning
  • 环绕通知@Around

 

查看原文:http://zswlib.com/2016/07/14/spring-aop%e6%b3%a8%e8%a7%a3%e9%85%8d%e7%bd%ae/

  • 大小: 124.5 KB
0
1
分享到:
评论

相关推荐

    spring AOP注解的应用1

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

    spring aop注解版

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

    spring aop 注解例子

    要启用注解驱动的 AOP,需要在 Spring 配置文件中添加 `&lt;aop:aspectj-autoproxy&gt;` 标签,或者在 Java 配置类中使用 `@EnableAspectJAutoProxy` 注解。 6. **运行环境** 由于这是一个简单的例子,因此运行环境的...

    spring aop注解配置代码实例

    Spring AOP注解配置是Spring框架提供的一种便捷的面向切面编程的方式,它允许开发者在不使用XML配置的情况下,直接通过注解实现切面的功能。本文将深入探讨Spring AOP的注解配置,并通过具体的代码实例来阐述其使用...

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

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

    SpringAOP的注解配置

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

    spring注解aop配置详解

    Spring AOP,即Aspect-Oriented Programming(面向切面编程),是Spring框架的重要特性,它为应用程序提供了声明式的企业级服务,如...在实际开发中,熟练掌握Spring AOP的注解配置无疑会极大地提升我们的工作效率。

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

    5. **@EnableAspectJAutoProxy**: 在Spring配置类上添加此注解,启用基于Java代理的AOP支持,这样Spring会自动检测并处理带有@Aspect注解的类。 ```java @Configuration @EnableAspectJAutoProxy public class ...

    SpringAOP注解特棒例子

    通过这个"SpringAOP注解方式"的示例,你可以了解到如何在Spring中使用注解定义切面,编写通知,并配置切入点。这种方式大大简化了AOP的配置,使得代码更加模块化和易于维护。学习并掌握Spring AOP的注解使用,对于...

    sping aop注解配置

    在Spring AOP中,注解配置是一种简洁且直观的使用方式,它极大地简化了配置过程,避免了XML配置的繁琐。以下是使用注解配置Spring AOP的关键知识点: 1. **切面(Aspect)**:切面是AOP的核心概念,它封装了多个...

    spring aop jar 包

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

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

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

    springAOP配置动态代理实现

    2. **注解配置**:Spring 2.5引入了基于注解的AOP配置,可以在切面类上使用@Aspect注解,@Before、@After、@AfterReturning、@AfterThrowing和@Around定义通知,@Pointcut定义切点。例如: ```java @Aspect ...

    用注解的方式进行SpringAOP开发

    本篇我们将深入探讨如何使用注解的方式来实现Spring AOP开发。 ### 一、注解基础 在Spring AOP中,主要使用以下几种注解: 1. `@Aspect`:定义一个切面类,切面是AOP的核心,包含通知(advisors)和切点...

    使用Spring配置文件实现AOP

    这种方式虽然相比注解方式略显繁琐,但对于大型项目或者需要精细控制AOP配置的情况,仍然是一个很好的选择。通过深入理解和实践,我们可以更好地利用Spring AOP来优化我们的应用程序,提高代码的可读性和可维护性。

    spring-aop和注解的实例

    而注解在Spring AOP中的应用,使得配置变得更加简洁和直观。 首先,让我们理解什么是切片(Aspect)。在AOP中,切片是关注点的一个模块化单元,它封装了跨越多个对象的代码。例如,事务管理就是一个切片,它涉及到...

    Spring AOP完整例子

    在Spring XML配置中,我们可以使用`&lt;aop:config&gt;`元素来定义切点表达式,然后使用`&lt;aop:aspect&gt;`元素来声明切面,并将通知方法与切点关联起来。此外,还可以使用注解驱动的配置,通过`@EnableAspectJAutoProxy`注解...

    spring aop注解所需要的三个jar包,aspectjrt.jar,aspectjweaver.jar,aopalliance.jar

    本篇文章将深入探讨Spring AOP注解所依赖的三个核心JAR包:aspectjrt.jar、aspectjweaver.jar以及aopalliance.jar,并阐述它们在AOP框架中的作用。 首先,`aspectjrt.jar`是AspectJ运行时库,它是AspectJ编译器和织...

    Spring AOP 注解使用

    **Spring AOP 注解使用详解** 在Java世界中,Spring框架以其强大的功能和灵活性而备受推崇,其中AOP(Aspect-Oriented ...通过理解上述概念和实践案例,你将能够更有效地利用Spring AOP注解来优化和组织你的代码。

    Spring Aop之AspectJ注解配置实现日志管理的方法

    Spring Aop之AspectJ注解配置实现日志管理的方法 Spring Aop是基于AspectJ实现的面向切面编程(AOP),它提供了一个灵活的方式来实现日志管理。通过使用AspectJ注解,可以轻松地实现日志记录、性能监控、安全检查...

Global site tag (gtag.js) - Google Analytics