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.

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

  • 相关阅读:
    jQuery基础总结
    javascript 继承实现方式
    javascript种的call、apply、bind方法总结
    react 入门(三)
    react 入门(二)
    react 入门(一)
    javascript 原型链
    Vue.js——60分钟快速入门
    结合字节码指令理解Java虚拟机栈和栈帧
    JVM GC垃圾回收详解
  • 原文地址:https://www.cnblogs.com/digdeep/p/5900748.html
Copyright © 2011-2022 走看看