首页 > 其他分享 >Spring不同版本的AOP

Spring不同版本的AOP

时间:2023-02-28 09:22:39浏览次数:27  
标签:... int Spring System 版本 AOP println public out

1、Spring4、SpringBoot1

  1.1 代码实现

public interface Calculator {

    int div(int a,int b);
}
@Component
public class CalculatorImpl implements Calculator{
    @Override
    public int div(int a, int b) {
        int result = a/b;
        System.out.println("计算结果为:"+result);
        return result;
    }
}
@Aspect
@Component
public class CalculatorAspect {
    @Before(value = "execution(* com.jixian.springboot1.CalculatorImpl.*(..))")
    public void beforeNotify(){
        System.out.println("@Before...前置通知");
    }
    @After(value = "execution(* com.jixian.springboot1.CalculatorImpl.*(..))")
    public void afterNotify(){
        System.out.println("@After...后置通知");
    }
    @AfterReturning(value = "execution(* com.jixian.springboot1.CalculatorImpl.*(..))")
    public void afterReturningNotify(){
        System.out.println("@AfterReturning...返回通知");
    }
    @AfterThrowing(value = "execution(* com.jixian.springboot1.CalculatorImpl.*(..))")
    public void afterThrowingNotify(){
        System.out.println("@AfterThrowing...异常通知");
    }
    @Around(value = "execution(* com.jixian.springboot1.CalculatorImpl.*(..))")
    public Object aroundNotify(ProceedingJoinPoint joinPoint) throws Throwable{
        Object res = null;
        System.out.println("@Around...环绕通知之前A");
        res = joinPoint.proceed();
        System.out.println("@Around...环绕通知之后B");
        return res;
    }
}

  1.2 测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringBoot1ApplicationTests {
    @Autowired
    private Calculator calculator;

    @Test
    public void contextLoads() {
        System.out.println("Spring版本:"+ SpringVersion.getVersion()+"\t"+"SpringBoot版本:"+ SpringBootVersion.getVersion());
        calculator.div(5,2);
    }

}

 

 

 

 2、Spring5、SpringBoot2

 

 

 

 3、Spring6、SpringBoot3

 

 

 

标签:...,int,Spring,System,版本,AOP,println,public,out
From: https://www.cnblogs.com/jixian/p/17162747.html

相关文章

  • Python多版本管理pyenv
    1背景&概述因某些需求,需要安装TensorFlow,很自然地在终端敲下了以下命令:pipinstalltensorflow1然后。。。好家伙???居然没有??因为是Python3.9,去pypi搜索了,居然......
  • SpringBoot项目结构
    一.总体概述SpringBoot框架简单来说就是一个Web框架,其目的在于快速开发一个Web应用的后端实现主要包括三部分:java文件夹,Resource文件夹,pom.xml二.Java文件夹Co......
  • Cephadm部署rgw ingress和nfs ingress(Pacific版本)
    rgwingress自动生成的配置keepalived的配置文件:/etc/keepalived/keepalived.conf#Thisfileisgeneratedbycephadm.vrrp_scriptcheck_backend{script"/u......
  • springboot+mybatis-plus数据库mysql+sybase遇到的一些问题
    我们服务启动时,sybase数据库连接直接创建10个连接。(为什么启动时会创建这么多连接?)有时候可以写入sybase库,大部分写入失败查询sybase库数据可以查出来,没问题尝试的方......
  • SpringCloudAlibaba、SpringCloud、SpringBoot、Spring版本对应关系
    SpringCloudAlibaba版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明最新(SpringBoot3.0以下)示例:SpringCloudAlibabaVersionSpringCloud......
  • 【Cassandra】Cassandra在spring boot中的使用
    1、depedency<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-cassandra</artifactId></dependency>2、propertiesspring.da......
  • 记录首次在云服务器部署spring boot项目,并实现域名访问
    第一次写博客,对初次服务器部署配置做一个记录,写的有错或者纰漏欢迎指正目录前言一、服务器准备二、安装需要的东西1.jdk2.redis3.MySQL部署项目三.域名访问nginx安装总......
  • 【Spring】BeanFactory
    (181条消息)BeanFactory简单介绍_Lin_Dong_Tian的博客-CSDN博客_beanfactory 一、 BeanFactoryBeanFactory,以Factory结尾,表示它是一个工厂类(接口), 它负责生产......
  • 【Spring】FactoryBean
    (181条消息)FactoryBean详解_MiaSanMiaRL的博客-CSDN博客_factorybeanFactoryBean也叫做Bean工厂,是用于生产Bean对象的类FactoryBean的使用首先我们要明确,FactoryBean......
  • 【Spring】BeanFactory和FactoryBean有哪些区别
      区别说实话,他俩除了名字比较像以外,好像没有其他共同点了。「BeanFactory和FactoryBean有哪些区别?」BeanFactory是一个最基础的IOC容器,提供了依赖查找,依......