zoukankan      html  css  js  c++  java
  • 利用Spring AOP机制拦截方法一例

    直接上代码:

    @Aspect    // for aop
    @Component // for auto scan
    @Order(0)  // execute before @Transactional
    public class MessageInterceptor {
        
    
        @Autowired
        private UserService        userService;
        
        private static Logger logger = LoggerFactory.getLogger(MessageInterceptor.class);
        
          @Pointcut("execution(public * com.xxx.wx.mapper.MymessageMapper.insert(..))")
        public void messageInsertAspect(){
              
          }
        
        //@Before("messageInsertAspect()")
        @After("messageInsertAspect()")
        public void messageInsert(JoinPoint joinPoint) {
            if(joinPoint.getArgs() != null){
                Mymessage message = (Mymessage) joinPoint.getArgs()[0];
                logger.debug(JSON.toJSONString(message));
    
               // .....

    try { sendMyMessageNotice(token, message); // 发送审核通过消息 } catch (IOException e) { e.printStackTrace(); logger.debug(e.toString()); } } }

    拦截方法:com.xxxx.wx.mapper.MymessageMapper.insert(Mymessage message)

    插入消息记录之后,马上推送消息。

    配置:

    spring配置文件中加入扫描:

    <context:component-scan base-package="com.xxxx.wx.service, com.xxxx.wx.aop" />

    com.xxxx.wx.aop 这个是MessageInterceptor 所在的包。

    So easy, and so powerfull.

    注:还有一个问题没有考虑,如果插入数据到数据中时失败了,拦截器会怎么样呢?是否会推送消息呢?后面再来考虑和完善。

  • 相关阅读:
    kvm-在virsh环境中改变CD媒介
    Mysql5.7.16安装过程
    Pycharm 2016专业版激活方式
    Tornado
    Django
    python day18
    python day16
    day15
    python day11
    B10-openstack高可用(t版)-nova计算节点节点集群部署
  • 原文地址:https://www.cnblogs.com/digdeep/p/5900748.html
Copyright © 2011-2022 走看看