aop的需求分析:错误异常分析

这里写图片描述
但是,我们学习过aop之后,我们知道了有异常通知这种方式。

这里写图片描述

下面是代码的实现:

//dao层
public interface personDAO {
    public void savePerson() throws Exception;
}

//dao层实现
public class personDAOImpl implements personDAO {

    @Override
    public void savePerson() throws Exception {
        //抛出异常
        throw new RuntimeException("dao wrong");
    }
}


//service层
public interface personService {
    public void savePerson() throws Exception;
}


//service层实现
public class personServiceImpl implements personService {
    //引用dao层
    private personDAO dao;
    @Override
    public void savePerson() throws Exception {
        //调用dao层的方法
        this.dao.savePerson();
    }
    //省略getter&setter方法
}


//action层
public class personAction {
    //引用service层
    private personService service;
    public void savePerson() throws Exception{
        //调用service层方法
        this.service.savePerson();
    }
    //省略getter&setter方法
}


//异常切面
public class MyException {
    public void showException(Throwable ex){
        //输出异常信息
        System.out.println(ex.getMessage());
    }
}

配置文件配置:

    <bean id="dao" class="cn.ansel.mvc.dao.impl.personDAOImpl"></bean>

    <bean id="service" class="cn.ansel.mvc.service.impl.personServiceImpl">
        <property name="dao" ref="dao"></property>
    </bean>

    <bean id="action" class="cn.ansel.mvc.action.personAction">
        <property name="service" ref="service"></property>
    </bean>

    <!-- 
        切面
     -->
    <bean id="myException" class="cn.ansel.mvc.exception.MyException"></bean>


    <aop:config>
        <aop:pointcut expression="execution(* cn.ansel.mvc.service.impl.*.*(..))" id="perform"/>
        <aop:aspect ref="myException">
            <aop:after-throwing method="showException" pointcut-ref="perform" throwing="ex"/>
        </aop:aspect>
    </aop:config>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值