1. 程式人生 > >手寫SpringMVC迷你版

手寫SpringMVC迷你版

步驟

  實現思路:
       配置階段
            1:在web.xml檔案中配置相應的DispatcherServlet的類路徑
            2:指定application.properties的檔案路徑
            3:設定客戶端請求路徑
       初始化階段:
            1:init方法  
                   載入web.xml檔案的配置
            2:初始化SpringIOC容器
                    根據spring配置資訊來進行初始化
            3:掃描出所有的相關連的類
                    配置一個base-package
            4
:依賴注入 5:handMapping 將url和方法進行對映 其實就是一個map 等待請求階段: 1:Request 和Response 2: 根據url獲取到相應的Method 3:使用反射機制呼叫method 4:將返回值 輸出

專案說明

    專案自定義了SpringMVC的RequestMapping,Controller,Service,AutoWrited註解,
    專案中都有詳細的程式碼註釋
    SpringMVC的實現主要是先載入配置檔案,之後從配置檔案中讀取要掃描的
    包(beanNames的List),之後例項化物件(IOC)把有註解的類新增到
    IOC容器中,在之後就是依賴注入,說白了就是賦值(解決的是@AutoWrited
) ,再之後就是handmapping,這個map中存的就是url所對應的方法,最後通過請 求去解析呼叫。 整個過程實現主要是用了java的反射機制,去獲取相應的類,方法,欄位。

註解

    以前一直認為Spring在定義註解後,需要去程式碼中具體的實現該註解,就像是
    介面的實現,這個錯誤的認知,今天終於發現了。
    其實Spring中的註解可以看成是一個識別符號,具體的實現是在具體需要使用的
    時候通過java的反射機制可以獲取到類,方法,欄位上標識的註解,然後再通過
    此註解去發揮它應該的作用。

程式碼地址

    [地址](https://github.com
/xiaofanjun/XFJRepository.git)

相關推薦

SpringMVC迷你

步驟 實現思路: 配置階段 1:在web.xml檔案中配置相應的DispatcherServlet的類路徑 2:指定application.properties的檔案路徑

一個迷你的Tomcat 侵立刪

轉自:https://mp.weixin.qq.com/s/JmenXagf3OtjCIadqpJoog   前言 Tomcat,這隻3腳貓,大學的時候就認識了,直到現在工作中,也常會和它打交道。這是一隻神奇的貓,今天讓我來抽象你,實現你! Tomcat &nbs

一個迷你Spring MVC框架

前期準備我這裡要寫的是一個迷你版的Spring MVC,我將在一個乾淨的web工程開始開發,不引

系列】一個迷你的Tomcat

前言 Tomcat,這隻3腳貓,大學的時候就認識了,直到現在工作中,也常會和它打交道。這是一隻神奇的貓,今天讓我來抽象你,實現你! Tomcat   Write MyTomcat Tomcat是非常流行

SpringMVC (一) 簡要,去除冗餘複雜程式碼,Spring核心功能

github 地址 :https://github.com/yjy91913/jerry-mvcframework 只是閒來無事寫的簡化版,僅供大家理解SpringMvc的運作原理) 瞭解了springMVC的原始碼,寫一個功能簡單可以實現的springM

轉載:SpringMVC框架

javaee 作用 小寫 繼承 inf group css finally 減少 帶你手寫一個SpringMVC框架(有助於理解springMVC) 鏈接:https://my.oschina.net/liughDevelop 作者:我叫劉半仙 Spring

一個簡化Tomcat

exc ext login 變量 請求參數 finally engine catch container 一、Tomcat工作原理 我們啟動Tomcat時雙擊的startup.bat文件的主要作用是找到catalina.bat,並且把參數傳遞給它,而catali

一個簡易Tomcat

處理 http協議 部署 對象 這一 -m 輸入流 gconf 一個tomcat 前言 Tomcat Write MyTomcat Tomcat是非常流行的Web Server,它還是一個滿足Servlet規範的容器。那麽想一想,Tomcat和我們的Web應用是什麽關

跟我一起造輪子 springmvc

targe leg unit nco 容器 ner 並且 dir 有關   作為java程序員,項目中使用到的主流框架多多少少和spring有關聯,在面試的過程難免會問一些spring springmvc spring boot的東西,比如設計模式的使用、 怎麽實現spri

SpringMVC到SpringBoot框架專案實戰

引言 Spring Boot其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。 通過這種方式,springboot是一個快速整合第三方框架的,簡化了xml的配置,專案中再也不包含web.xml檔案了

spring事務(6)-----SpringMVC模式(@RequestMapping和@Controller註解)

一,spring原生態的程式碼分析 1.1,首先,我們先來認識一下SpringMVC的主要元件   前端控制器(DisatcherServlet):接收請求,響應結果,返回可以是json,String等資料型別,也可以是頁面(Model)。   處理器對映器(HandlerMap

高手過招「效能優化/純SpringMVC框架/MySql優化/微服務」

效能優化那些絕招,一般人我不告訴他 1,支付寶介面的介面如何正確呼叫; 2,從併發程式設計角度來提高系統性能; 3,系統響應的速度縮短N倍的祕密; 4,從Futuretask類原始碼分析到手寫; 5,快速提升Web專案吞吐量;   300行精華程式碼:純手寫SpringMVC框

spring(簡易)

  本文版權歸 遠方的風lyh和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作,如有錯誤之處忘不吝批評指正!        理解Spring本質:      相信之前在使用spring的時候大家都配置web.xml檔案、會配

SpringMVC

相信用過SpringMVC的同學都會對它愛不釋手,它作為MVC框架使用起來簡直就是享受。時間久了相信會問它到底是怎麼實現的呢,今天我們來揭開其神祕的面紗。 這裡我們通過寫一個簡單的例子來模擬SpringMVC的基本原理,希望能夠對愛提問的人有所幫助 1.web.xml中配

springMVC學習心得及springMVC簡單實現

springMVC學習心得及手寫springMVC簡單實現 Spring 是一個企業級開發框架,為解決企業級專案開發過於複雜而建立的,框架的主要優勢之一就是分層架構,允許開發者自主選擇元件。 Spring 的兩大核心機制是 IoC(控制反轉)和 AOP(面向切面程式設計),從開發的角度

springmvc原理詳解(springmvc

最近在複習框架 在網上搜了寫資料 和原理 今天總結一下 希望能加深點映像  不足之處請大家指出 我就不畫流程圖了 直接通過程式碼來了解springmvc的執行機制和原理 回想用springmvc用到最多的是什麼?當然是controller和RequestMapping註解啦

SpringMVC實戰,從Spring底層原始碼分析與設計

課程內容: 1,三分鐘熟悉Spring底層原始碼,你只需準備好鮮花即可; 2,Spring原始碼很可怕?那是因為你沒聽過James的課; 3,快速熟悉原始碼基礎,洞析SpringMVC與Spring框架關係; 4,@Controller,@Service這些註解算什麼,一

SpringMVC架構,用註解實現springmvc過程(動腦學院Jack老師課後自己練習的體會)

標籤: 1、第一步,首先搭建如下架構,其中,annotation中放置自己編寫的註解,主要包括service controller qualifier RequestMapping 第二步:完成對應的annotation: package com.cn.annotation; import java.

SpringMVC-實戰篇

       有了手寫SpringMVC的思路,不知道大家是否已經開始實現呢?現在就為大家開始以上一篇文章《手寫SpringMVC-思路篇》的思路來一步步的實現SpringMVC的手寫,讓大家也能在SpringMVC的實現上有個初步的認識。此篇文章可能有些長,希望大家可以一邊

Tensorflow學習筆記:基礎篇(7)——Mnist集改進(Tensorboard視覺化)

Tensorflow學習筆記:基礎篇(7)——Mnist手寫集改進版(Tensorboard視覺化介面) 前序 — 前文中,我們在三層全連線神經網路中使用了學習率隨迭代次數增加而逐漸衰減的AdamOptimizer優化器來完成MNIST資料的分類問題,最