• 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();
    }
    }

    结果:


    
    
     
     
     
  • 相关阅读:
    Redis Sentinel 哨兵模式
    Redis 读写分离
    Redis 分布式锁实现
    Redis 缓存的收益和成本
    Redis 实现排行榜
    Spring Boot 使用 Cache 缓存
    Spring Boot 整合 Redis
    Spring Boot 使用阿里巴巴 Druid 数据源
    Spring Boot 整合 JWT
    B1003
  • 原文地址:https://www.cnblogs.com/sujulin/p/7655916.html
Copyright © 2020-2023  润新知