当前位置: 代码迷 >> J2EE >> spring注解切面不起作用,该怎么解决
  详细解决方案

spring注解切面不起作用,该怎么解决

热度:33   发布时间:2016-04-22 01:58:12.0
spring注解切面不起作用
在学spring,按照书上的例子,这个注解切面怎么不起作用呀,哪儿有问题,谢谢了!
代码如下:

注解切面:
Java code
package com.xcd.idol;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;@Aspectpublic class Listenner {        @Pointcut("execution(* *.singing(..))")    public void singer(){};        @Before("singer()")    public void takeSeats(){        System.out.println("观众入座!。。");    }        @Before("singer()")    public void closeCellphone(){        System.out.println("关闭移动电话。。");    }        @AfterReturning("singer()")    public void yeah(){        System.out.println("演出精彩,观众欢呼!。。");    }        @AfterThrowing("singer()")    public void worse(){        System.out.println("演出糟糕,观众要求退款。。");    }}



自动代理:
XML 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"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    http://www.springframework.org/schema/aop    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">        <bean id="singer" class="com.xcd.idol.Singer"></bean>    <aop:aspectj-autoproxy /></beans>


Java code
package com.xcd.idol;public interface Sing {    void singing();}package com.xcd.idol;public class Singer implements Sing {    public void singing() {        System.out.println("歌手唱歌!。。");    }}package com.xcd.test;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.xcd.idol.Singer;public class T2 {    /**     * @param args     */    public static void main(String[] args) {        ClassPathXmlApplicationContext cac = new ClassPathXmlApplicationContext("applicationContext.xml");        Singer s = (Singer)cac.getBean("singer");        //Sing s = (Sing)cac.getBean("singer");        s.singing();    }}


------解决方案--------------------
spring配置文件加上:

<bean id="listenner" class="com.xcd.idol.Listenner"></bean>
  相关解决方案