国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring獲取controller方法中自定義注解的信息

null1145 / 1285人閱讀

摘要:序本文主要聊一下如何在容器啟動時,獲取有自定義注解的方法信息。主要用到這個方法通過這個就可以獲取具體的請求的方法,然后利用反射去判斷是否有標(biāo)注自己所需要的注解。啟動時處理實(shí)現(xiàn)接口,在在中去處理這樣就大功告成了

本文主要聊一下如何在spring容器啟動時,獲取有自定義注解的方法信息。

RequestMappingHandlerMapping

spring-webmvc-4.3.10.RELEASE-sources.jar!/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.java

public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMapping
        implements MatchableHandlerMapping, EmbeddedValueResolverAware {

    private boolean useSuffixPatternMatch = true;

    private boolean useRegisteredSuffixPatternMatch = false;

    private boolean useTrailingSlashMatch = true;

    private ContentNegotiationManager contentNegotiationManager = new ContentNegotiationManager();

    private StringValueResolver embeddedValueResolver;

    private RequestMappingInfo.BuilderConfiguration config = new RequestMappingInfo.BuilderConfiguration();
    
    //....
}

getHandlerMethods
spring-webmvc-4.3.10.RELEASE-sources.jar!/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java

/**
     * Return a (read-only) map with all mappings and HandlerMethod"s.
     */
    public Map getHandlerMethods() {
        this.mappingRegistry.acquireReadLock();
        try {
            return Collections.unmodifiableMap(this.mappingRegistry.getMappings());
        }
        finally {
            this.mappingRegistry.releaseReadLock();
        }
    }

主要用到這個getHandlerMethods方法

Map
for(Map.Entry entry : urlMethodMapping.entrySet()){

            RequestMappingInfo info = entry.getKey();
            HandlerMethod handlerMethod = entry.getValue();
            Method method = handlerMethod.getMethod();

            if(!method.isAnnotationPresent(DemoAnno.class)){
                continue;
            }

            DemoAnno demoAnno = method.getAnnotation(DemoAnno.class);
            //......
        }

通過這個HandlerMethod就可以獲取具體的請求的方法,然后利用反射去判斷是否有標(biāo)注自己所需要的注解。

啟動時處理

實(shí)現(xiàn)ApplicationListener接口,在

@Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
        //.......
    }

在onApplicationEvent中去處理
這樣就大功告成了

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67950.html

相關(guān)文章

  • SpringMVC數(shù)據(jù)轉(zhuǎn)換

    摘要:數(shù)據(jù)綁定負(fù)責(zé)將中的信息以一定的方式轉(zhuǎn)換并綁定到處理方法的參數(shù)上。整個過程的處理核心是由完成。數(shù)據(jù)轉(zhuǎn)換在語言中,在包中提供了一個接口來進(jìn)行數(shù)據(jù)轉(zhuǎn)換,的核心功能是將一個轉(zhuǎn)換為一個對象。 數(shù)據(jù)綁定 SpringMVC負(fù)責(zé)將request中的信息以一定的方式轉(zhuǎn)換并綁定到處理方法的參數(shù)上。整個過程的處理核心是由DataBinder完成。轉(zhuǎn)換流程如下:1.DataBinder從ServletReq...

    DrizzleX 評論0 收藏0
  • SpringMVC【校驗(yàn)器、統(tǒng)一處理異常、RESTful、攔截器】

    摘要:只要有一個攔截器不放行,不能執(zhí)行完成號不放行和號不放行測試結(jié)果總結(jié)只有前邊的攔截器方法放行,下邊的攔截器的才執(zhí)行。至于他們的攔截器鏈的調(diào)用順序,和的是沒有差別的。 前言 本博文主要講解的知識點(diǎn)如下: 校驗(yàn)器 統(tǒng)一處理異常 RESTful 攔截器 Validation 在我們的Struts2中,我們是繼承ActionSupport來實(shí)現(xiàn)校驗(yàn)的...它有兩種方式來實(shí)現(xiàn)校驗(yàn)的功能 手寫...

    marser 評論0 收藏0
  • Spring Boot中自定義注解+AOP實(shí)現(xiàn)主備庫切換

    摘要:示例代碼如下添加的設(shè)置默認(rèn)的配置對應(yīng)的是原來的如何使用注解從主庫到備庫的切換 摘要: 本篇文章的場景是做調(diào)度中心和監(jiān)控中心時的需求,后端使用TDDL實(shí)現(xiàn)分表分庫,需求:實(shí)現(xiàn)關(guān)鍵業(yè)務(wù)的查詢監(jiān)控,當(dāng)用Mybatis查詢數(shù)據(jù)時需要從主庫切換到備庫或者直接連到備庫上查詢,從而減小主庫的壓力,在本篇文章中主要記錄在Spring Boot中通過自定義注解結(jié)合AOP實(shí)現(xiàn)直接連接備庫查詢。 一.通過A...

    zhisheng 評論0 收藏0
  • 慕課網(wǎng)_《SpringBoot進(jìn)階之Web進(jìn)階》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼個人學(xué)習(xí)源碼第一章課程介紹課程介紹本課程緊接著小時學(xué)會課程,請先看入門課。異常返回通知在連接點(diǎn)拋出異常后執(zhí)行。 時間:2017年3月19日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:htt...

    lifefriend_007 評論0 收藏0
  • [Spring cloud 一步步實(shí)現(xiàn)廣告系統(tǒng)] 7. 中期總結(jié)回顧

    摘要:在前面的過程中,我們創(chuàng)建了個服務(wù)發(fā)現(xiàn)我們使用作為服務(wù)發(fā)現(xiàn)組件,學(xué)習(xí)了的使用。加依賴加注解改配置使用項(xiàng)目三部曲,我們可以快速添加一個新組件,并正常使用這個我沒有在項(xiàng)目中實(shí)現(xiàn),但是大家可以和一樣,三部曲搞定。 在前面的過程中,我們創(chuàng)建了4個project: 服務(wù)發(fā)現(xiàn) 我們使用Eureka 作為服務(wù)發(fā)現(xiàn)組件,學(xué)習(xí)了Eureka Server,Eureka Client的使用。 Eureka...

    cnsworder 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<