java自定義注解
問題描述
比如springmvc的requestmapping
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//
package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import org.springframework.core.annotation.AliasFor;
@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface RequestMapping {
String name() default '';@AliasFor('path')String[] value() default {};@AliasFor('value')String[] path() default {};RequestMethod[] method() default {};String[] params() default {};String[] headers() default {};String[] consumes() default {};String[] produces() default {};
}
為什么就可以將請求 路由進來啊 實現代碼在哪兒呢 什么原理啊???
問題解答
回答1:如果不了解注解相關的知識,可以了解一下注解知識 1、文章1,2、文章2,這兩篇講解的還不錯。之后可以百度一下spring mvc requestmapping 源碼解讀,網上的文章還是蠻多的。源碼目前還沒有讀過,不過基本的原理應該也是通過反射獲取到相應的配置,再根據配置進行請求路由。具體的是怎么根據反射獲取相應配置的還是要去讀一下源碼。
回答2:/a/11...
相關文章:
1. mysql - 一個表和多個表是多對多的關系,該怎么設計2. python 如何實現PHP替換圖片 鏈接3. html5 - iOS的webview加載出來的H5網頁,怎么修改html標簽select的樣式字體?4. 一個mysql聯表查詢的問題5. python如何不改動文件的情況下修改文件的 修改日期6. javascript - git clone 下來的項目 想在本地運行 npm run install 報錯7. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區別?8. angular.js - 三大框架react、vue、angular的分析9. python - django 里自定義的 login 方法,如何使用 login_required()10. 主從備份 - 跪求mysql 高可用主從方案
