成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

自定義注解打jar包上傳到maven私服

scwang90 / 3192人閱讀

摘要:最近工作,有些功能在不同的模塊總是會(huì)重復(fù)的應(yīng)用,于是想把特定的功能做成一個(gè)注解,打成包,放到自己的私服上面。

最近工作,有些功能在不同的模塊總是會(huì)重復(fù)的應(yīng)用,于是想把特定的功能做成一個(gè)注解,打成jar包,放到自己的maven私服上面。這里做一下記錄(springboot)

一. 自定義注解

建一個(gè)注解接口,加上對(duì)應(yīng)的注解信息

   @Target(ElementType.METHOD)
   @Retention(RetentionPolicy.RUNTIME)
   public @interface CrawlerTimed {
   }

通過(guò)攔截器,攔截使用次注解的方法

            public class CrawlerInterceptor extends HandlerInterceptorAdapter {
                private Logger logger = LoggerFactory.getLogger(CrawlerInterceptor.class);
        
        
            /**
             * 調(diào)用之前
             * @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);
        
                //判斷當(dāng)前注解是否存在
                if(crawlerTimed != null){
                    long millis = System.currentTimeMillis();
                    request.setAttribute("startTime",millis);
                    logger.info("進(jìn)入方法:"+method.getName()+" 的時(shí)間是:"+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);
        
                //如果存在這個(gè)注解
                if(crawlerTimed!=null){
                    long endTime = System.currentTimeMillis();
                    Long startTime =(Long) request.getAttribute("startTime");
                    long periodTime = endTime - startTime;
                    logger.info("離開(kāi)方法:"+method.getName()+" 的時(shí)間是:"+endTime);
                    logger.info("方法:"+method.getName()+" 總計(jì)耗時(shí):"+periodTime +"ms");
                }
            }
            }
            

3 注冊(cè)此攔截器,不然不會(huì)被spring管理

/**
 * 注冊(cè)自定義的攔截器
 */
@Configuration
public class InterceptorRegister extends WebMvcConfigurerAdapter {

    //創(chuàng)建攔截器bean
    @Bean
    public CrawlerInterceptor crawlerInterceptor(){
        return new CrawlerInterceptor();
    }


    //蔣攔截器bean注冊(cè)到spring
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(crawlerInterceptor());
    }

}

4.resources/META-INF/spring.factories文件
若沒(méi)有,則新建此文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.iamcrawler.www.crawler_annotation.config.InterceptorRegister

5.打jar包

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/69580.html

相關(guān)文章

  • Maven就是這么簡(jiǎn)單

    摘要:軟件項(xiàng)目的管理就會(huì)變得簡(jiǎn)單很多。比如說(shuō)的驅(qū)動(dòng)程序,,在是獲取不到的,就需要手工上傳到里是倉(cāng)庫(kù)組,在里沒(méi)有這個(gè)概念,是特有的。 什么是Maven Maven是一個(gè)采用純Java編寫的開(kāi)源項(xiàng)目管理工具, Maven采用了一種被稱之為Project Object Model (POM)概念來(lái)管理項(xiàng)目,所有的項(xiàng)目配置信息都被定義在一個(gè)叫做POM.xml的文件中.. Maven是一款跨平臺(tái)的項(xiàng)目...

    leonardofed 評(píng)論0 收藏0
  • Maven 實(shí)戰(zhàn)

    摘要:的主要思想是約定優(yōu)于配置。強(qiáng)烈建議遵循以上規(guī)范,避免不必要的麻煩。依賴傳遞依賴范圍除了控制,還會(huì)對(duì)依賴傳遞產(chǎn)生影響。此外還提供了和來(lái)進(jìn)一步管理依賴,分別稱為可選依賴和排除依賴。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平臺(tái)的項(xiàng)目管理工具,主要服務(wù)于基于Java...

    twohappy 評(píng)論0 收藏0
  • hudson +gradle+git+maven(非必選)持續(xù)集成一 動(dòng)化

    摘要:持續(xù)集成正是針對(duì)這一類問(wèn)題的一種軟件開(kāi)發(fā)實(shí)踐。持續(xù)集成的原則業(yè)界普遍認(rèn)同的持續(xù)集成的原則包括需要版本控制軟件保障團(tuán)隊(duì)成員提交的代碼不會(huì)導(dǎo)致集成失敗。 第一集 hudson+gradle+git+maven(非必選)持續(xù)集成編譯,打包,發(fā)布到倉(cāng)庫(kù)集成 前言 什么是持續(xù)集成 隨著軟件開(kāi)發(fā)復(fù)雜度的不斷提高,團(tuán)隊(duì)開(kāi)發(fā)成員間如何更好地協(xié)同工作以確保軟件開(kāi)發(fā)的質(zhì)量已經(jīng)慢慢成為開(kāi)發(fā)過(guò)程中不可回避的...

    xietao3 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

scwang90

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<