栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Spring】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Spring】

AOP Maven包:


      org.springframework
      spring-aop
    
    
      org.springframework
      spring-aspects
    

方式一:Spring AOP 1.x 配置
包的结构:

  1. 先定义一个Service的接口
public interface TestSerivce {
    public void logIn();
    public boolean test();
    public void logOut();
}
  1. 然后实现这个接口
public class TestServiceImpl implements TestSerivce{
    @Override
    public void logIn() {
        System.out.println("LogIn success");
    }

    @Override
    public boolean test() {
        try{
            System.out.println("test success");
            return true;
        }catch (Exception e){
            e.getMessage();
            return false;
        }
    }

    @Override
    public void logOut() {
        System.out.println("Logout success");
    }
}
  1. 定义增强类:
    a. 前置通知:
public class BeforeAdvice implements MethodBeforeAdvice {
    @Override
    public void before(Method method, Object[] objects, Object o) throws Throwable {
        System.out.println("This is Before Advice");
    }
}
b. 后置通知
public class AfterAdvice implements AfterReturningAdvice {
    @Override
    public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
        System.out.println("This is a after advice");
    }
}
	c. 环绕通知
```java
public class AroundAdvice implements MethodInterceptor {
    @Override
    public Object invoke(MethodInvocation methodInvocation) throws Throwable {
        System.out.println("环绕执行开始");

        //执行目标
        Object proceed = methodInvocation.proceed();

        System.out.println("环绕执行结束");
        return proceed;
    }
}
d. 异常通知:
public class ExceptionAdvice implements ThrowsAdvice {
//    可以利用重载抓取不同类型的Exception
    public void afterThrowing(NullPointerException nullPointerException){
        System.out.println(nullPointerException.getMessage());
        System.out.println("Get a Null exception");
    }

    public void afterThrowing(Exception e){
        System.out.println(e.getMessage());
    }
}
  1. xml配置:



    


    
    
    
    


    

        

        
            
                logIn
            
        
    

    
        
        
            
               test
            
        
    

    
        
        
            
                test
            
        
    

    
        
        
            
                logIn
                test
                logOut
            
        
    


    
        
        
            
                aop01.service.TestSerivce
            
        
        
            
                beforeMethod
                afterMethod
                aroundMethod
                excMethod
            
        
    

  1. 运行:
public class TestAOP {
    public static void main(String[] args) {
        ApplicationContext app=new ClassPathXmlApplicationContext("aop01/aopConfig.xml");
        TestSerivce testService =(TestSerivce) app.getBean("testService");
        testService.logIn();
        testService.test();
        testService.logOut();
    }
}
  1. 运行结果:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号