zoukankan      html  css  js  c++  java
  • AOP within表达式不生效

    首先看Aspect的代码

    @Pointcut("within(com.davidhu.shopguide.admin.mapper..*) + " || within(com.davidhu.shopguide..*.impl..*)"
    " ) public void applicationPackagePointcut() { // Method is empty as this is just a Pointcut, the implementations are in the // advices. }

    需要被advice执行的方法

    public interface CrawlItemMapper extends BaseMapper<CrawlItem> {
        @Delete("delete from crawl_items where DATEDIFF(now(),item_create_time) > 4")
        int deleteHistoryItems();
    
    
        @Select("select id,goods_source_sn,goods_info_url,source,url_code," +
                "thumb_url,zhi_count,buzhi_count,star_count,comments_count,mall,title,emphsis,detail,detail_brief," +
                "label,category_text,item_create_time,item_update_time,main_image_url,big_image_urls,small_image_urls," +
                "price_text,price,unit_price,actual_buy_link,transfer_link,transfer_result,transfer_remark,coupon_info,taobao_pwd," +
                "score,score_minute,keywords,status,remark,creator," +
                "creator_id,last_operator,last_operator_id from crawl_items where TIMESTAMPDIFF(HOUR,item_create_time,now()) > 24")
        List<CrawlItem> getItemsAfter24Hours();
    
        @Select("select id, goods_source_sn,goods_info_url,source,url_code," +
                "thumb_url,zhi_count,buzhi_count,star_count,comments_count,mall,title,emphsis,detail,detail_brief," +
                "label,category_text,item_create_time,item_update_time,main_image_url,big_image_urls,small_image_urls," +
                "price_text,price,unit_price,actual_buy_link,transfer_link,transfer_result,transfer_remark,coupon_info,taobao_pwd," +
                "score,score_minute,keywords,status,remark,creator," +
                "creator_id,last_operator,last_operator_id from crawl_items_48h where TIMESTAMPDIFF(HOUR,item_create_time,now()) > 48")
        List<CrawlItem48h> getItemsAfter48Hours();
    
        @Select("select id, goods_source_sn,goods_info_url,url_code,thumb_url,zhi_count,buzhi_count,star_count,comments_count,mall,title,emphsis,detail,detail_brief," +
                "label,category_text,item_create_time,item_update_time,main_image_url,big_image_urls,price_text,actual_buy_link,transfer_link," +
                "taobao_pwd,transfer_result,transfer_remark,coupon_info,score,score_minute,keywords,status,remark from crawl_items where url_code=#{urlCode} for update")
        CrawlItem getItemByUrlCodeForUpdate(@Param("urlCode") String urlCode);
    
        @Select("select goods_info_url from crawl_items where status=1 order by score_minute desc, id desc limit 0,40")
        List<String> getFirstRecrawlItems();
    }

    service方法

            CrawlItem item = crawlItemMapper.getItemByUrlCodeForUpdate(code);

    不知为何crawlItemMapper的方法无法触发advice,但servie方法就可以。

    如果把within改成execution就没问题

        /**
         * Pointcut that matches all Spring beans in the application's main packages.
         */
        @Pointcut("execution(* com.davidhu.shopguide.admin.mapper.CrawlItemMapper.*(..))" )
        public void applicationPackagePointcut() {
            // Method is empty as this is just a Pointcut, the implementations are in the
            // advices.
        }

    根据文档,对within和execution的解释是这样(https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html)

    execution(MethodPattern)Picks out each method execution join point whose signature matches MethodPattern.

    within(TypePattern)Picks out each join point where the executing code is defined in a type matched by TypePattern.

    看起来没有什么问题,我猜是由于mybatisplus对CrawlItemMapper的处理造成的,问题还未知。

    喜欢艺术的码农
  • 相关阅读:
    12、多线程:Threading、守护线程
    11.1、socket连接中的粘包、精确传输问题
    python网络编程:socket、服务端、客户端
    python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义
    9.4、__del__、__doc__、__dict__、__module__、__getitem__、__setitem__、__delitem__、__str__、__repr__、__call__
    python:异常处理、自定义异常、断言
    9.3、反射
    9.1.1、私有变量,私有方法
    关掉百度商桥请您留言和在线咨询
    飞飞影视cms标签
  • 原文地址:https://www.cnblogs.com/zjhgx/p/15170745.html
Copyright © 2011-2022 走看看