カスタムコメントjarカバンにmaven私服を送ります。


最近仕事をしていますが、いくつかの機能はモジュールごとに繰り返し応用されていますので、特定の機能を一つの注釈にして、Jarパッケージにして、自分のmaven私服に載せたいです。ここでメモしてください。
一.カスタムコメント
  • は注釈インターフェースを構築し、対応する注釈情報
       @Target(ElementType.METHOD)
       @Retention(RetentionPolicy.RUNTIME)
       public @interface CrawlerTimed {
       }
    
    
  • を付加する。
  • は、傍受によって、次の注釈を使用する方法をブロックする
  •             public class CrawlerInterceptor extends HandlerInterceptorAdapter {
                    private Logger logger = LoggerFactory.getLogger(CrawlerInterceptor.class);
            
            
                /**
                 *     
                 * @param request
                 * @param response
                 * @param handler
                 * @return
                 * @throws Exception
                 */
                @Override
                public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
                    HandlerMethod handlerMethod = (HandlerMethod)handler;
                    Method method = handlerMethod.getMethod();
            
                    //           
                    CrawlerTimed crawlerTimed = method.getAnnotation(CrawlerTimed.class);
            
                    //          
                    if(crawlerTimed != null){
                        long millis = System.currentTimeMillis();
                        request.setAttribute("startTime",millis);
                        logger.info("    :"+method.getName()+"     :"+millis);
                    }
            
                    return true;
                }
            
                @Override
                public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
                    HandlerMethod handlerMethod = (HandlerMethod)handler;
                    Method method = handlerMethod.getMethod();
                    //           
                    CrawlerTimed crawlerTimed = method.getAnnotation(CrawlerTimed.class);
            
                    //        
                    if(crawlerTimed!=null){
                        long endTime = System.currentTimeMillis();
                        Long startTime =(Long) request.getAttribute("startTime");
                        long periodTime = endTime - startTime;
                        logger.info("    :"+method.getName()+"     :"+endTime);
                        logger.info("  :"+method.getName()+"     :"+periodTime +"ms");
                    }
                }
                }
                
    
    
    3このブロックを登録してください。でないと、springに管理されません。
    /**
     *          
     */
    @Configuration
    public class InterceptorRegister extends WebMvcConfigurerAdapter {
    
        //     bean
        @Bean
        public CrawlerInterceptor crawlerInterceptor(){
            return new CrawlerInterceptor();
        }
    
    
        //    bean   spring
        @Override
        public void addInterceptors(InterceptorRegistry registry){
            registry.addInterceptor(crawlerInterceptor());
        }
    
    }
    
    4.resoures/META-INF/spring.factoresファイルがない場合、このファイルを新規作成します。
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\cn.iamcrawler.www.crawler_annotation.config.InterceptorRegister
    
    5.jarバッグを打つ