读书人

ThrowsAdvice不起作用解决方案

发布时间: 2012-02-23 22:01:34 作者: rapoo

ThrowsAdvice不起作用
我定义了一个类,实现了ThrowsAdvice接口,在afterThrowing方法里输出“拦截异常”,可它不起作用,控制台只是输出普通的异常信息,没有输出我自己写的“拦截异常”几个字

Hi类

Java code
public class Hi {    public  void sayHI(){                System.out.println("i say hi");        try {            throw new Exception("my exception");        } catch (Exception e) {            e.printStackTrace();        }    }}


ThrowsAdvice类:
Java code
import org.springframework.aop.ThrowsAdvice;public class MyThrowsAdvice implements ThrowsAdvice{    public void afterThrowing(Exception ex){        System.out.println("拦截异常");        System.out.println(ex);            }}


applicationContex.xml
HTML code
<?xml version="1.0" encoding="UTF-8"?><beans    xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">    <bean id="hi" class="Hi"/>    <bean id="throw" class="MyThrowsAdvice"/>    <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">        <property name="target">            <ref bean="hi"/>        </property>        <property name="interceptorNames">            <list>                 <value>proxy</value>            </list>        </property>    </bean></beans>


Test.java
Java code
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {        public static void main(String[] args) {        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");        Hi h=(Hi)ac.getBean("proxy");        h.sayHI();        }}



[解决办法]
不要在方法里捕获

读书人网 >Java Web开发

热点推荐