麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 擴(kuò)展 > MVC > 正文

寫(xiě)簡(jiǎn)單的mvc框架實(shí)例講解

2024-09-06 20:44:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這一章先把支持注解的功能加上,這樣就不需要經(jīng)常地修改配置文件了。

至于視圖處理的地方,就還是先用json吧,找時(shí)間再寫(xiě)。

項(xiàng)目地址在:https://github.com/hjx601496320/aMvc 。

測(cè)試代碼在:https://github.com/hjx601496320/amvc-test 。

怎么寫(xiě)呢?

因?yàn)樵谥皩?xiě)代碼的時(shí)候,我把每個(gè)類要做的事情分的比較清楚,所以在添加這個(gè)功能的時(shí)候?qū)懫饋?lái)還是比較簡(jiǎn)單的,需要修改的地方也比較小。

這一章里我們需要干的事情有:

定義一個(gè)注解,標(biāo)識(shí)某一個(gè)class中的被添加注解的方法是一個(gè)UrlMethodMapping。 修改配置文件,添加需要掃描的package。 寫(xiě)一個(gè)方法,根據(jù)package中值找到其中所有的class。 在UrlMethodMapping的工廠類UrlMethodMappingFactory中新加一個(gè)根據(jù)注解創(chuàng)建UrlMethodMapping的方法。 在Application中的init()方法中,根據(jù)是否開(kāi)啟注解支持,執(zhí)行新的工廠類方法。 完了。

多么簡(jiǎn)單呀~~~

現(xiàn)在開(kāi)始寫(xiě)

定義一個(gè)注解Request

關(guān)于怎樣自定義注這件事,大家可以上網(wǎng)搜一下,比較簡(jiǎn)單。我這里只是簡(jiǎn)單的說(shuō)一下。我先把代碼貼出來(lái):

import com.hebaibai.amvc.RequestType;import java.lang.annotation.*;/** * 表示這個(gè)類中的,添加了@Request注解的method被映射為一個(gè)http地址。 * * @author hjx */@Documented@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface Request {  /**   * 請(qǐng)求類型   * 支持GET,POST,DELETE,PUT   *   * @return   */  RequestType[] type() default {RequestType.GET, RequestType.POST, RequestType.DELETE, RequestType.PUT};  /**   * 請(qǐng)求地址   * 添加在class上時(shí),會(huì)將value中的值添加在其他方法上的@Request.value()的值前,作為基礎(chǔ)地址。   *   * @return   */  String value() default "/";}

定義一個(gè)注解,需要用到一下幾個(gè)東西:

1:@interface:說(shuō)明這個(gè)類是一個(gè)注解。

2:@Retention:注解的保留策略,有這么幾個(gè)取值范圍:

代碼 說(shuō)明
@Retention(RetentionPolicy.SOURCE) 注解僅存在于源碼中
@Retention(RetentionPolicy.CLASS) 注解會(huì)在class字節(jié)碼文件中存在
@Retention(RetentionPolicy.RUNTIME) 注解會(huì)在class字節(jié)碼文件中存在,運(yùn)行時(shí)可以通過(guò)反射獲取到

因?yàn)槲覀冊(cè)诔绦蛑行枰〉阶远x的注解,所以使用:RetentionPolicy.RUNTIME。

3:@Target:作用目標(biāo),表示注解可以添加在什么地方,取值范圍有:

代碼 說(shuō)明
@Target(ElementType.TYPE) 接口、類、枚舉、注解
@Target(ElementType.FIELD) 字段、枚舉的常量
@Target(ElementType.METHOD) 方法
@Target(ElementType.PARAMETER) 方法參數(shù)
@Target(ElementType.CONSTRUCTOR) 構(gòu)造函數(shù)
@Target(ElementType.LOCAL_VARIABLE) 局部變量
@Target(ElementType.ANNOTATION_TYPE) 注解
@Target(ElementType.PACKAGE)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文字幕xxx | 亚洲一区二区三区在线免费观看 | 精品国产91久久久久久久妲己 | 午夜亚洲影院 | 中文字幕极速在线观看 | 国产成人小视频在线观看 | 中国女警察一级毛片视频 | 久久久麻豆| 91精品国产九九九久久久亚洲 | 欧美一级淫片免费视频黄 | 91福利影视| 91精品国产777在线观看 | omofun 动漫在线观看 | 欧美综合在线观看视频 | 成人免费观看毛片 | 欧美日韩成人一区二区 | 欧美14一15sex性hd | av大全在线播放 | 超污视频在线看 | 精品国产91久久久久久 | 性欧美暴力猛交69hd | 欧美成年性h版影视中文字幕 | 久久老司机精品视频 | 红杏亚洲影院一区二区三区 | 国产色视频在线观看免费 | 亚洲第一综合 | 国产高清成人久久 | 欧美成人精品一区二区男人小说 | 亚洲小视频 | 一级外国毛片 | 激情小说图 | 日本一级黄色大片 | 看毛片免费 | 成人毛片100免费观看 | 久啪视频 | 亚洲一区二区 | 黄网站进入 | 97久久曰曰久久久 | 中文字幕国产欧美 | 成人毛片视频免费 | 亚洲午夜久久久久 |