我配置为啥没有增强啊,是哪里错误了 麻烦老师看看

我配置为啥没有增强啊,是哪里错误了 麻烦老师看看

package com.imooc.Demo5;



public class Studao {
    public void add() {
        System.out.println("添加");
    }

    public void delect() {
        System.out.println("删除");
    }

    public void update() {
        System.out.println("修改");
    }

    public void sava() {
        System.out.println("查询");
    }
}
package com.imooc.Demo5;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

public class MyAroundAdvice implements MethodInterceptor {

    public Object invoke(MethodInvocation methodInvocation) throws Throwable {
//在这前就是环绕前通知
        //       执行目标方法
        System.out.println("环绕前增强");
        Object proceed = methodInvocation.proceed();
//环绕后通知
        System.out.println("环绕后增强");

        return  proceed;
    }

}

Springaop 配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">
    <!--配置目标类-->
    <bean id="Studao" class="com.imooc.Demo5.Studao"></bean>
    <!--环绕通知配置-->
    <bean id="myAroundAdvice" class="com.imooc.Demo5.MyAroundAdvice"></bean>
    <!--一般切面是用通知为切面,带切入点的要先配置待遇切入点的切面-->
    <bean id="myadvice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
       <!--配置切入点 正则表达式-->
        <property name="pattern" value=".*save.*"/>
        <!--使用哪种配置通知-->
        <property name="advice" ref="myAroundAdvice"/>

    </bean>
    <bean id="test2" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="target" ref="Studao"/>
        <property name="proxyTargetClass" value="true"/>
        <property name="interceptorNames" value="myadvice"/>

    </bean>
</beans>

测试类

package com.imooc.Demo5;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:Springaop2.xml")
public class test {
    @Resource(name = "test2")
    private  Studao studao;
    @Test
    public  void test(){
        studao.add();
        studao.delect();
        studao.update();
        studao.sava();
    }

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
AlanLiu0328 2018-11-11 20:29:12

兄弟,  你在XML里是save。  实际代码是sava。  当然不行。 另外delect是什么鬼?

归本 2018-11-05 17:41:05
<property name="pattern" value=".*save.*"/>

这句话中间看起来多了一个空格,或者是变成全角字符了,你试着切换成半角字符,或者直接删了,重新写一下!

飞一样的感觉 2018-11-02 18:49:27

value=".*save.*"  你这里的第一个.和*中间距离比后面的要宽。应该是多打了空格,有空格的情况下是不会出现增强的

提问者 孤zero 2018-10-26 19:07:42
好帮手慕阿莹 2018-10-26 18:11:14

把@Resource(name = "test2")改成@Resource(name = "Studao") 试试。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 孤zero #1
    老师 修改了还是没有增强啊!
    2018-10-26 19:05:05
  • chrismorgen 回复 提问者 孤zero #2
    你好同学,应该改为@Resource(name = "studao")要和下面的对象名相同,祝学习愉快~
    2018-10-28 15:20:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师