ethod efore dvice-类DataSourceAdvice实现MethodBeforeAdvice,没起作用

问题描述

类DataSourceAdvice实现MethodBeforeAdvice,没起作用

类DataSourceAdvice.java

 public class DataSourceAdvice implements MethodBeforeAdvice {
    // service方法执行之前被调用 

    @Override
    public void before(Method method, Object[] args, Object target) throws Throwable {
        System.out.println("切入点: " + target.getClass().getName() + "类中" + method.getName() + "方法");
        if(method.getName().startsWith("add")
            || method.getName().startsWith("create")
            || method.getName().startsWith("save")
            || method.getName().startsWith("edit")
            || method.getName().startsWith("update")
            || method.getName().startsWith("delete")
            || method.getName().startsWith("remove")){
            System.out.println("切换到: master");
            DataSourceSwitcher.setMaster();
        }
        else  {
            System.out.println("切换到: slave");
            DataSourceSwitcher.setSlave();
        }
    }
}

实现MethodBeforeAdvice,重载before方法.在spring.xml

 <bean id="dataSourceAdvice" class="com.sly.spring.DataSourceAdvice" />
    <aop:config>

        <aop:pointcut id="transacationPointcut" expression="execution(* com.sly.service.*.*(..))" />
        <aop:advisor advice-ref="dataSourceAdvice"  pointcut-ref="transacationPointcut" />
 </aop:config>

但是为什么我请求Service时,切面的内容没有打印呢?

时间: 2024-10-21 13:12:46

ethod efore dvice-类DataSourceAdvice实现MethodBeforeAdvice,没起作用的相关文章

android-下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用!

问题描述 下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用! Dialog dlg = new AlertDialog.Builder(MainActivity.this).setTitle("蓝牙连接......").create(); dlg.show(); new Thread(){ public void run() { try { MainActivity.this.mySock.connect(); Toast.makeText( MainActivity.

java数据流DataInputstream类中的方法readBoolean()的作用是什么?

问题描述 java数据流DataInputstream类中的方法readBoolean()的作用是什么? 书上说readBoolean()的作用是读取一个布尔值,但是具体是 根据什么得到布尔值的?这个布尔值可以用于什么操作?跪求指点! 解决方案 从输入流读取,如果是0,就是false,否则就是true,bool值可以用来做逻辑判断. 解决方案二: 你写进去的时候的那个值,但需要顺序读取,写入时,第一个如果是int,那就读取时就要readInt,类似这样 解决方案三: JAVA中String类的i

ligerui-ligerUI中设置了自己想要的时间格式,但是结果没起作用,求高手指教?

问题描述 ligerUI中设置了自己想要的时间格式,但是结果没起作用,求高手指教? JS中是这样写的 {display : "发布时间",name : "firstPublishTime",type: "date",format:"yyyy-mm-dd HH:mm:ss"}, {display : "标题",name : "title"}, {display : "创建人&qu

flash-手机浏览器安装的falsh,没起作用

问题描述 手机浏览器安装的falsh,没起作用 用的FlexPaper插件转换pdf到swf文件,在手机浏览器安装了falsh,只有 火狐的能看swf文件,其他手机浏览器都不行. 解决方案 天空一声霹雳响,出来一个乔布斯,他不仅造了苹果,还弄了一个叫html5的语言出来,然后和adobe中的flash叫嚣.abobe急了,反而放弃了移动端的更新,没想到自己搬起石头砸了自己的脚.本来flash最大的优点是跨平台,这回好了,安卓系统更新后都不支持adobe了,本来ios就不和adobe搞基了,现在安

amp-c++ AMP GPU调试,断点没起作用

问题描述 c++ AMP GPU调试,断点没起作用 电脑升了win10用的是vs2013我自己写了一点小程序,调试器类型也设置了仅GPU下了断点,然后调试,程序一路跑到尾,根本就不在断点出婷,这是咋回事,求好心人指点一下,谢谢. 解决方案 是设备还是模拟器,用模拟器运行看看 解决方案二: 要看是不是模拟器,模拟器一般能好一点点//

电脑原本2G内存,加了张2G的内存条,显示为安装内存4G(可用2G),怎么办啊,好像没起作用

问题描述 电脑原本2G内存,加了张2G的内存条,显示为安装内存4G(可用2G),怎么办啊,好像没起作用 我的电脑是三星SensR530,操作系统是Win7简易版,32位 解决方案 Win7**简易版**,32位,是否入门版的?似乎只支持2GB的...家庭基本版本以上的可以支持到最大4GB 解决方案二: 32位系统是可以识别4G内存的, 你看看是不是你的其他硬件把内存占了,比如显卡什么的(个人觉得很有可能) 或者再看看是不是加装的内存条型号不匹配,以至于不能使用(刚百度了一下,看到你这个型号的电脑

&amp;amp;lt;meta&amp;amp;gt;没起作用,没显示内容

问题描述 我的网站是VS2008做的<headid="Head1"runat="server"><title>前线中国</title><metahttp-equiv="Content-Language"content="zh-cn"/><metahttp-equiv="Content-Type"content="text/html;charse

在线等,急。。。。。。。。。用手机打开网站,Session[&amp;amp;quot;username&amp;amp;quot;] 没起作用

问题描述 if(Session["username"]==null||Session["username"]==""){//Response.Redirect("../login/login.aspx",false);Response.Write("<script>window.top.navigate('login.aspx');</script>");}用手机打开网站,Sessi

WCF数据超过65536传入最大值的限制,在配置文件改了没起到作用,怎么破

问题描述 思路是服务器端返回一个dataset到客户端,但dataset里面包含二进制文件,导致出现这个错误,网上找了几种解决办法没起作用客户端配置文件里面的MaxServiceLength(打错了,是这意思就行)之类的属性都按网上加了,看起来好像还是读取的默认值,配置文件改变的没起作用数据库是oracle直接上传一个390K的exe文件在里面,然后通过dataset读出来的,服务器端配置文件也加了类似的东东,没效果,求解决方案,不想分批传输,太费劲,毕竟只是客户端更新文件,N久才更新一次 解决