• 【对线面试官】Java注解


    今天面试官考我Java注解...

    public void send(String userName) {
      try {
        // qps 上报
        qps(params);
        long startTime = System.currentTimeMillis();

        // 构建上下文(模拟业务代码)
        ProcessContext processContext = new ProcessContext();
        UserModel userModel = new UserModel();
        userModel.setAge("22");
        userModel.setName(userName);
        //...

        // rt 上报
        long endTime = System.currentTimeMillis();
        rt(endTime - startTime);
      } catch (Exception e) {
        
        // 出错上报
        error(params);
      }
    }
    @Around("@annotation(com.sanwai.service.openapi.monitor.Monitor)")
        public Object antispan(ProceedingJoinPoint pjp) throws Throwable {

            String functionName = pjp.getSignature().getName();
            Map<String, String> tags = new HashMap<>();

            logger.info(functionName);

            tags.put("functionName", functionName);
            tags.put("flag""done");

            monitor.sum(functionName, "start"1);

            //方法执行开始时间
            long startTime = System.currentTimeMillis();

            Object o = null;
            try {
                o = pjp.proceed();
            } catch (Exception e) {
                //方法执行结束时间
                long endTime = System.currentTimeMillis();

                tags.put("flag""fail");
                monitor.avg("rt", tags, endTime - startTime);

                monitor.sum(functionName, "fail"1);
                throw e;
            }

            //方法执行结束时间
            long endTime = System.currentTimeMillis();

            monitor.avg("rt", tags, endTime - startTime);

            if (null != o) {
                monitor.sum(functionName, "done"1);
            }
            return o;
        }

    文章以纯面试的角度去讲解,所以有很多的细节是未铺垫的。

    比如说反射、.java文件到jvm的过程、AOP是什么等等等...这些在【Java3y】都有过详细的基本教程甚至电子书,我就不再详述了。

    注解可以把它当做是配置的载体,可能在运行时、可能在编译过程中解析注解,实现些方便好用的功能。

    欢迎关注我的微信公众号【面试造火箭】来聊聊Java面试

  • 相关阅读:
    Fortran学习记录1(Fortran数据类型)
    ABAQUS学习记录1——用户子程序综述
    Abaqus用户子程序umat的学习
    信号基础知识---线阵
    信号基础知识--FFT DFT
    信号基础知识
    服务器文件打压缩包下载(java)
    网页鼠标特效-点击漂浮文字
    jQuery父子页面之间元素、方法获取、调用
    常用数字与字母的正则表达式
  • 原文地址:https://www.cnblogs.com/Java3y/p/14183635.html
Copyright © 2020-2023  润新知