iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java Spring之基于注解的AOP怎么配置
  • 134
分享到

Java Spring之基于注解的AOP怎么配置

2023-07-05 22:07:42 134人浏览 八月长安
摘要

本篇内容主要讲解“Java spring之基于注解的aop怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之基于注解的AOP怎么配置”吧!1 环境搭建1.1 第一步:

本篇内容主要讲解“Java spring之基于注解的aop怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之基于注解的AOP怎么配置”吧!

    1 环境搭建

    1.1 第一步:准备必要的代码和 jar

    • 拷贝上一小节的工程即可。

    1.2 第二步:在配置文件中导入 context 的名称空间

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="Http://www.springframework.org/schema/beans"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    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.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd">     <!-- 配置数据库操作对象 -->    <bean id="dbAssit" class="com.itheima.dbassit.DBAssit">        <property name="dataSource" ref="dataSource"></property>                <!-- 指定 connection 和线程绑定 -->        <property name="useCurrentConnection" value="true"></property>    </bean>     <!-- 配置数据源 -->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>        <property name="jdbcUrl" value="jdbc:Mysql:///spring_day02"></property>        <property name="user" value="root"></property>        <property name="passWord" value="1234"></property>    </bean></beans>

    1.3 第三步:把资源使用注解配置

    • 账户的业务层实现类

    @Service("accountService")public class AccountServiceImpl implements IAccountService {     @Autowired    private IAccountDao accountDao;}
    • 账户的持久层实现类

    @Repository("accountDao")public class AccountDaoImpl implements IAccountDao {    @Autowired    private DBAssit dbAssit ;}

     1.4 第四步:在配置文件中指定 spring 要扫描的包

    <!-- 告知 spring,在创建容器时要扫描的包 --><context:component-scan base-package="com.itheima"></context:component-scan>

    2 配置步骤

    2.1 第一步:把通知类也使用注解配置

    @Component("txManager")public class TransactionManager {     //定义一个 DBAssit    @Autowired    private DBAssit dbAssit ;}

    2.2 第二步:在通知类上使用@Aspect 注解声明为切面

    • 作用:

      • 把当前类声明为切面类。

    • 事务控制类

    @Component("txManager")@Aspect//表明当前类是一个切面类public class TransactionManager {     //定义一个 DBAssit    @Autowired    private DBAssit dbAssit ;}

    2.3 第三步:在增强的方法上使用注解配置通知

    2.3.1 @Before
    • 作用:

      • 把当前方法看成是前置通知。

    • 属性:

      • value:用于指定切入点表达式,还可以指定切入点表达式的引用。

    //开启事务@Before("execution(* com.itheima.service.impl.*.*(..))")public void beginTransaction() {     try {        dbAssit.getCurrentConnection().setAutoCommit(false);    } catch (sqlException e) {        e.printStackTrace();    }}
    2.3.2 @AfterReturning
    • 作用:

      • 把当前方法看成是后置通知。

    • 属性:

      • value:用于指定切入点表达式,还可以指定切入点表达式的引用

    //提交事务@AfterReturning("execution(* com.itheima.service.impl.*.*(..))")public void commit() {     try {        dbAssit.getCurrentConnection().commit();    } catch (SQLException e) {        e.printStackTrace();    }}
    2.3.3 @AfterThrowing
    • 作用:

      • 把当前方法看成是异常通知。

    • 属性:

      • value:用于指定切入点表达式,还可以指定切入点表达式的引用

    //回滚事务@AfterThrowing("execution(* com.itheima.service.impl.*.*(..))")public void rollback() {     try {        dbAssit.getCurrentConnection().rollback();    } catch (SQLException e) {        e.printStackTrace();    }}
    2.3.4 @After
    • 作用:

      • 把当前方法看成是最终通知。

    • 属性:

      • value:用于指定切入点表达式,还可以指定切入点表达式的引用

    //释放资源@After("execution(* com.itheima.service.impl.*.*(..))")public void release() {     try {        dbAssit.releaseConnection();    } catch (Exception e) {        e.printStackTrace();    }}

    2.4 第四步:在 spring 配置文件中开启 spring 对注解 AOP 的支持

    <!-- 开启 spring 对注解 AOP 的支持 --><aop:aspectj-autoproxy/>

    3 环绕通知注解配置 @Around

    • 作用:

      • 把当前方法看成是环绕通知。

    • 属性:

      • value:用于指定切入点表达式,还可以指定切入点表达式的引用。

    @Around("execution(* com.itheima.service.impl.*.*(..))")public Object transactionAround(ProceedingJoinPoint pjp) {     //定义返回值    Object rtValue = null;     try {            //获取方法执行所需的参数        Object[] args = pjp.getArgs();            //前置通知:开启事务        beginTransaction();         //执行方法        rtValue = pjp.proceed(args);         //后置通知:提交事务        commit();        }catch(Throwable e) {         //异常通知:回滚事务        rollback();        e.printStackTrace();    }finally {     //最终通知:释放资源    release();    }     return rtValue;}

    4 切入点表达式注解 @Pointcut

    • 作用:

      • 指定切入点表达式

    • 属性:

      • value:指定表达式的内容

    @Pointcut("execution(* com.itheima.service.impl.*.*(..))")private void pt1() {}         @Around("pt1()")//注意:千万别忘了写括号    public Object transactionAround(ProceedingJoinPoint pjp) {     //定义返回值    Object rtValue = null;     try {        //获取方法执行所需的参数        Object[] args = pjp.getArgs();         //前置通知:开启事务        beginTransaction();                //执行方法        rtValue = pjp.proceed(args);         //后置通知:提交事务        commit();    }catch(Throwable e) {         //异常通知:回滚事务        rollback();        e.printStackTrace();    }finally {         //最终通知:释放资源        release();    }        return rtValue;}

    5 不使用 XML 的配置方式

    @Configuration@ComponentScan(basePackages="com.itheima")@EnableAspectJAutoProxypublic class SprinGConfiguration { }

    到此,相信大家对“Java Spring之基于注解的AOP怎么配置”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: Java Spring之基于注解的AOP怎么配置

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

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

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

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

    下载Word文档
    猜你喜欢
    • Java Spring之基于注解的AOP怎么配置
      本篇内容主要讲解“Java Spring之基于注解的AOP怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之基于注解的AOP怎么配置”吧!1 环境搭建1.1 第一步:...
      99+
      2023-07-05
    • Java_Spring之基于注解的AOP配置
      目录1 环境搭建1.1 第一步:准备必要的代码和 jar 包1.2 第二步:在配置文件中导入 context 的名称空间1.3 第三步:把资源使用注解配置 1.4 第四步:...
      99+
      2023-05-14
      Java Spring 注解的AOP配置 Spring AOP配置 基于注解的 AOP配置
    • Java Spring之XML的AOP怎么配置
      本篇内容主要讲解“Java Spring之XML的AOP怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之XML的AOP怎么配置”吧!1 环境搭建示例:在学习 spr...
      99+
      2023-07-05
    • 浅析Spring基于注解的AOP
      目录一、准备工作二、基于注解的AOP之前置通知三、基于注解的AOP之切入点表达式的语法和重用以及获取连接点的信息①切入点表达式的语法②获取连接点的信息③重用写入点表达式一、准备工作 ...
      99+
      2022-11-13
      Spring AOP Spring基于注解的AOP
    • Spring基于注解配置事务的属性
      本文实例为大家分享了Spring基于注解配置事务的属性,供大家参考,具体内容如下 一、事务属性概述 在Spring中,事务属性描述了事务策略如何应用到方法上,事务属性包含5个方面: ...
      99+
      2024-04-02
    • Java中Spring框架之AOP如何配置
      这篇文章主要介绍了Java中Spring框架之AOP如何配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  什么是AOP  AOP(Aspect Oriented Prog...
      99+
      2023-06-02
    • aspectjweaver:关于Spring注解AOP的注意点
      在使用Spring注解AOP时,有以下几个注意点:1. 引入相应的依赖:在使用Spring注解AOP时,需要引入aspectjwea...
      99+
      2023-09-13
      Spring
    • 使用Spring Aop如何配置AspectJ注解
      这篇文章将为大家详细讲解有关使用Spring Aop如何配置AspectJ注解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。采用的jdk代理,接口和实现类代码请参考上篇博文。主要是将Aspe...
      99+
      2023-05-31
      springaop aspectj
    • spring boot基于注解的声明式事务配置详解
      事务配置 1、配置方式一 1)开启spring事务管理,在spring boot启动类添加注解@EnableTransactionManagement(proxyTargetClas...
      99+
      2024-04-02
    • Spring基于AspectJ的AOP开发案例解析
      目录AspectJ简介注解开发环境准备不同的通知类型最通知中通过value属性定义切点入门案列@Before前置通知@AfterReturning后置通知@Around环绕通知@Af...
      99+
      2024-04-02
    • 基于spring中的aop简单实例讲解
      aop,即面向切面编程,面向切面编程的目标就是分离关注点,比如:一个骑士只需要关注守护安全,或者远征,而骑士辉煌一生的事迹由谁来记录和歌颂呢,当然不会是自己了,这个完全可以由诗人去歌颂,比如当骑士出征的时候诗人可以去欢送,当骑士英勇牺牲的时...
      99+
      2023-05-31
      spring aop 实例
    • Java之Spring注解配置bean实例代码解析
      前面几篇均是使用xml配置bean,如果有上百个bean,这是不可想象的。故而,请使用注解配置bean !!!【1】注解类别@Component : 基本注解, 标识了一个受 Spring(点击这里可以下载《Spring应用开发完全手册》)...
      99+
      2023-05-31
      java spring bean
    • spring基于注解配置实现事务控制操作
      目录spring注解配置实现事务控制1、导入相关依赖2、创建spring配置类3、创建JdbcConfig数据源配置类4、创建TransactionConfig事务配置类5、创建jd...
      99+
      2024-04-02
    • Spring的注解配置与XML配置之间的比较
      注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要...
      99+
      2022-11-15
      spring 注解配置 XML配置
    • Java Spring AOP该怎么理解
      这篇文章给大家介绍Java Spring AOP该怎么理解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言面向切面编程,利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的...
      99+
      2023-06-22
    • Spring框架基于注解的AOP之各种通知的使用与环绕通知实现详解
      目录一、基于注解的AOP之各种通知的使用二、基于注解的AOP之环绕通知一、基于注解的AOP之各种通知的使用 1.在切面中,需要通过指定的注解将方法标识为通知方法 @Before:前置...
      99+
      2022-11-13
      Spring框架基于注解的AOP各种通知 Spring框架基于注解的AOP环绕通知
    • Java的Spring AOP怎么用
      这篇文章主要介绍Java的Spring AOP怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是AOP&作用AOP 为 Aspect Oriented Programming 的缩写,意思为...
      99+
      2023-06-29
    • spring boot基于注解声明式事务配置的示例分析
      小编给大家分享一下spring boot基于注解声明式事务配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!事务配置1、配置方式一1)开启spring事务管理,在spring boot启动类添加注解@Enable...
      99+
      2023-06-20
    • Java怎么使用注解来配置Spring容器
      这篇文章主要介绍了Java怎么使用注解来配置Spring容器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么使用注解来配置Spring容器文章都会有所收获,下面我们一起来看看吧。介绍我们将介绍如何在J...
      99+
      2023-07-02
    • 基于Spring的注解@Qualifier小结
      目录Spring的注解@Qualifier小结先说明下场景,代码如下@qualifier注解参见下面的例子Spring的注解@Qualifier小结 近期在捯饬spring的注解,现...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作