zoukankan      html  css  js  c++  java
  • Spring中的异常增强

    接口:
    /**
    * 接口
    * Created by Administrator on 2017/10/7.
    */
    public interface ISomeService {
    public void SomeService() throws Exception;
    }

    实现类:
    /**
    * 接口的实现类
    * Created by Administrator on 2017/10/7.
    */
    public class SomeService implements ISomeService {
    //核心业务 异常增强
    public void SomeService() throws Exception{
    int result=5/0;
    System.out.println("hello");
    }
    }

    异常通知
    /**
    *
    * Created by Administrator on 2017/10/12.
    */
    public class MyExceptionAdvisor implements ThrowsAdvice {
    public void afterThrowing(Exception ex){
    System.out.println("错误");
    }
    }

    xml配置文件:
    <?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:p="http://www.springframework.org/schema/p"
    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="someService" class="cn.happy.exceptionadvisor.SomeService"></bean>
    <!--增强 通知-->
    <bean id="throwadvise" class="cn.happy.exceptionadvisor.MyExceptionAdvisor"></bean>
    <!--aop-->
    <bean id="proxyService" class="org.springframework.aop.framework.ProxyFactoryBean">
    <!--配置需要增强的目标对象-->
    <property name="target" ref="someService"></property>
    <!--做怎么样的增强-->
    <property name="interceptorNames" value="throwadvise"></property>
    </bean>
    </beans>



    测试类:
    /**
    * 异常增强
    */
    @Test
    public void Test(){
    ApplicationContext context=new ClassPathXmlApplicationContext("applicationContextExceptionAdvice.xml");
    ISomeService someService=(ISomeService)context.getBean("proxyService");
    try {
    someService.SomeService();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    结果:


    
    
     
     
     
  • 相关阅读:
    git rebase 还是 merge的使用场景最通俗的解释
    漏洞复现:Struts2 远程代码执行漏洞(S2-033)
    linux临时网络配置
    漏洞复现:Struts2 S2-032 漏洞环境
    XXE攻击学习
    启用了不安全的HTTP方法【转】
    HTTP参数污染【转】
    逻辑漏洞挖掘方式
    大漏洞时代下的僵尸网络追踪-笔记
    markdown入门杂记
  • 原文地址:https://www.cnblogs.com/sujulin/p/7655916.html
Copyright © 2011-2022 走看看