iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在spring中实现一个aop注解
  • 681
分享到

怎么在spring中实现一个aop注解

springaop 2023-05-31 08:05:18 681人浏览 八月长安
摘要

今天就跟大家聊聊有关怎么在spring中实现一个aop注解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。注解方式实现aop我们主要分为如下几个步骤:  1.在切面类(为切点服务的类)

今天就跟大家聊聊有关怎么在spring中实现一个aop注解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

注解方式实现aop我们主要分为如下几个步骤:

  1.在切面类(为切点服务的类)前用@Aspect注释修饰,声明为一个切面类。

  2.用@Pointcut注释声明一个切点,目的是为了告诉切面,谁是它的服务对象。(此注释修饰的方法的方法体为空,不需要写功能比如 public void say(){};就可以了,方法名可以被候命的具体服务功能所以引用,它可以被理解为切点对象的一个代理对象方法)

  3.在对应的方法前用对应的通知类型注释修饰,将对应的方法声明称一个切面功能,为了切点而服务

  4.在spring配置文件中开启aop注释自动代理。如: <aop:aspectj-autoproxy/>

这样讲可能还是很抽象,那么,废话不多说,我们代码说话,代码如下:

骑士类:(看过上一篇内容的就知道骑士是什么东西了,嘿嘿嘿)

package com.cjh.aop2;import org.springframework.stereotype.Component;@Component("knight")public class BraveKnight { public void saying(){  System.out.println("我是骑士..(切点方法)"); }}

切面类:(注释主要在这里体现)

package com.cjh.aop2;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;@Component("annotationTest")@Aspectpublic class AnnotationTest { //定义切点 @Pointcut("execution(* *.saying(..))") public void sayings(){}  @Before("sayings()") public void sayHello(){  System.out.println("注解类型前置通知"); } //后置通知 @After("sayings()") public void sayGoodbey(){  System.out.println("注解类型后置通知"); } //环绕通知。注意要有ProceedingJoinPoint参数传入。 @Around("sayings()") public void sayAround(ProceedingJoinPoint pjp) throws Throwable{  System.out.println("注解类型环绕通知..环绕前");  pjp.proceed();//执行方法  System.out.println("注解类型环绕通知..环绕后"); }}

spring配置文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="Http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 开启注解扫描 --> <context:component-scan base-package="com.cjh.aop2"/> <!-- 开启aop注解方式,此步骤s不能少,这样java类中的aop注解才会生效 --> <aop:aspectj-autoproxy/></beans>

测试代码:

package com.cjh.aop2;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test { public static void main(String[] args) {  ApplicationContext ac = new ClassPathXmlApplicationContext("com/cjh/aop2/beans.xml");  BraveKnight br = (BraveKnight) ac.getBean("knight");  br.saying(); }}

运行结果:

注解类型环绕通知..环绕前

注解类型前置通知

我是骑士..(切点方法)

注解类型环绕通知..环绕后

注解类型后置通知

========================分割线===================================

因为使用了注解方式,所以配置文件少了很多内容,只需要一句<context:component-scan base-package="com.cjh.aop2"/>声明要扫描的包,框架会自动扫描注释并生成bean对象。有个@Component("knight")这个注释,和<bean id="knight" class="com.cjh.aop2.BraveKnight"/>这个配置时一样的意思,框架会自动识别并创建名为knight的BraveKnight对象。所以有了注释,只需要开启注释扫描配置就好了,无需再做相同的bean配置。

如果运行过程中出现Spring aop : error at ::0 can't find referenced pointcut sleepPonit的错误,那么很可能是spring的包的版本问题,

我用的是spring4的版本,然后还需要加aspectjrt-1.7.4.jar和aspectjweaver-1.7.4.jar两个包

下载地址:http://xiazai.jb51.net/201708/yuanma/aspectjrt_aspectjweaver(jb51.net).rar

工程目录如下:(打码码的类不用管,只是为了不为大家造成误导,所以划掉了)

怎么在spring中实现一个aop注解

通知注解类型如下:

怎么在spring中实现一个aop注解

看完上述内容,你们对怎么在spring中实现一个aop注解有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 怎么在spring中实现一个aop注解

本文链接: https://www.lsjlt.com/news/224491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在spring中实现一个aop注解
    今天就跟大家聊聊有关怎么在spring中实现一个aop注解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。注解方式实现aop我们主要分为如下几个步骤:  1.在切面类(为切点服务的类)...
    99+
    2023-05-31
    spring aop
  • 在Spring中AOP怎么使用注解来实现
    这期内容当中小编将会给大家带来有关在Spring中AOP怎么使用注解来实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。spring对AOP的实现提供了很好的支持。下面我们就使用Spring的注解来完成A...
    99+
    2023-05-31
    spring aop
  • Spring Aop注解实现
    目录Spring-aop-理论知识 Spring-Aop-注解实现 项目结构图具体步骤:1、创建maven 项目 导入依赖 创建好项目结构2、写一个接口 及 其实现类3、切面类4、a...
    99+
    2024-04-02
  • @Around注解怎么在Spring AOP中使用
    这期内容当中小编将会给大家带来有关@Around注解怎么在Spring AOP中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。@Around注解可以用来在调用一个具体方法前和调用后来完成一些具体的任务...
    99+
    2023-06-06
  • 怎么在java中实现一个重复注解
    怎么在java中实现一个重复注解?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌...
    99+
    2023-06-14
  • Spring AOP 实现自定义注解的示例
    目录1. 注解如下:2. 切面自工作后,除了一些小项目配置事务使用过 AOP,真正自己写 AOP 机会很少,另一方面在工作后还没有写过自定义注解,一直很好奇注解是怎么实现他想要的功能...
    99+
    2024-04-02
  • 运用Spring Aop+注解实现日志记录
    目录1. 介绍2. 实践2.1 定义注解2.2 切面类2.3 编写测试方法2.4 运行结果3. 总结4. 参考文章1. 介绍 我们都知道Spring框架的两大特性分别是 IOC (控...
    99+
    2024-04-02
  • 使用Spring AOP 如何实现自定义注解
    这期内容当中小编将会给大家带来有关使用Spring AOP 如何实现自定义注解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Maven中加入以下以依赖:<!-- Spring AOP + Aspe...
    99+
    2023-05-31
    springaop 注解
  • Spring AOP中什么是半注解和全注解模式
    本篇文章为大家展示了Spring AOP中什么是半注解和全注解模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<bean id="logUtils" ...
    99+
    2023-06-14
  • Spring学习通过AspectJ注解方式实现AOP操作
    目录Spring注解AspectJ操作AOP一、被增强类二、增强类三、进行通知的配置1. spring 配置文件中,开启扫描。2. 使用注解创建 User 和 UserProxy 对...
    99+
    2024-04-02
  • Java Spring之基于注解的AOP怎么配置
    本篇内容主要讲解“Java Spring之基于注解的AOP怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之基于注解的AOP怎么配置”吧!1 环境搭建1.1 第一步:...
    99+
    2023-07-05
  • 在Kotlin中使用Spring Boot怎么实现一个RESTful服务
    今天就跟大家聊聊有关在Kotlin中使用Spring Boot怎么实现一个RESTful服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Spring太复杂了,配置这个东西简直就是浪...
    99+
    2023-05-31
    kotlin spring boot restful
  • Redis+AOP怎么自定义注解实现限流
    今天小编给大家分享一下Redis+AOP怎么自定义注解实现限流的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。下载1,下载页面...
    99+
    2023-07-02
  • 如何在Spring中实现一个BeanFactoryPostProcessor接口
    本篇文章为大家展示了如何在Spring中实现一个BeanFactoryPostProcessor接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。接口简介BeanFactoryPostProcess...
    99+
    2023-06-06
  • spring注解识别一个接口的多个实现类方法
    1.比如有一个接口如下:public interface Filter { public String doFilter(String param); }...
    99+
    2023-05-31
    spring 注解 接口
  • 怎么在Spring Boot中使用ElasticSearch实现一个搜索引擎
    这篇文章将为大家详细讲解有关怎么在Spring Boot中使用ElasticSearch实现一个搜索引擎,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Elastic Search是一个开源的...
    99+
    2023-05-30
    springboot elasticsearch
  • Spring使用AspectJ的注解式实现AOP面向切面编程
    目录1、认识Spring AOP1.1 AOP的简介1.2 AOP中的概念 切入点(pointcut):2、认识AspectJ 2.1 AspectJ的简介2.2 Spring AO...
    99+
    2024-04-02
  • 怎么用spring注解开发一个RESTful接口
    本篇内容主要讲解“怎么用spring注解开发一个RESTful接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用spring注解开发一个RESTful接口”吧!一、开发REST接口在本专栏...
    99+
    2023-06-29
  • SpringBoot利用AOP实现一个日志管理详解
    目录1. 需求2. 新建一张日志表3. 写相应的Controller层4.Service接口层5.Service实现6.Mapper接口7.Mapper.xml(我用的是Mybati...
    99+
    2024-04-02
  • 如何在SpringBoot中使用Spring-AOP实现接口鉴权
    目录面向切面编程AOP的底层原理实现AOP的相关术语相关注解以及切入点表达式实现接口鉴权1. 配置yml文件2. 读取账密配置3.编写接口鉴权方法4. 编写AOP5.编写接口测试面向...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作