SpringAOP注解配置

本文介绍了如何使用SpringAOP进行注解配置,包括创建Maven工程,添加Spring依赖,配置SpringAOP的XML文件,以及展示了一个事务管理的AOP注解配置案例。案例中展示了@Pointcut、@Before、@After和@Around注解的使用,实现事务的开启、提交和执行时间的打印。但需要注意,注解配置仅适用于源码层面,对于第三方类可能需要XML配置。
摘要由CSDN通过智能技术生成

SpringAOP注解配置

SpringAop注解配置框架部署

1、创建maven工程

2、添加Spring依赖

  • context

  • <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.12.RELEASE</version>
    </dependency>
    
  • aspects

  • <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.12.RELEASE</version>
    </dependency>
    

3、SpringAOP配置文件

<?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/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--    声明注解配置-->
    <context:annotation-config/>
<!--    声明扫描范围-->
    <context:component-scan base-package="com.ccl"/>
<!--    基于注解配置的aop代理-->
    <aop:aspectj-autoproxy>

    </aop:aspectj-autoproxy>
</beans>

AOP注解配置案例

@Component
@Aspect
public class Transction {
    //定义切入点
    @Pointcut("execution(* com.ccl.dao.*.*(..))")
    public void pc1(){}



    @Before("pc1()")
    public void begin(){
        System.out.println("----开启事务");
    }
    @After("pc1()")
    public void commit(){
        System.out.println("----提交事务");
    }

    @Around("pc1()")
    public Object printExecuteTime(ProceedingJoinPoint p ) throws Throwable {
        long tim1 = System.currentTimeMillis();
        Object v = p.proceed();
        long tim2 = System.currentTimeMillis();
        System.out.println("time: " + (tim2 - tim1));
        return v;
    }
}

注意:注解使用虽然方便,但是智能在源码上添加注解,因此我们的自定义注解配置;但如果使用到第三方提供的类则需要通过xml配置形式完成配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹老板么

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值