AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

簡易版的SpringBoot是如何實現(xiàn)的!!!

來源: 責編: 時間:2024-01-02 09:31:40 211觀看
導讀目前RocketMQ總算可以告一段落了,在學習的過程中是否遇到什么難點,前面的知識點是否還依稀記得,后面有時間還是需要好好復習一遍,不過總的來說還是得會使用,學習源碼是為了能夠讓你更加了解該技術,在碰到問題的同時能夠更加

目前RocketMQ總算可以告一段落了,在學習的過程中是否遇到什么難點,前面的知識點是否還依稀記得,后面有時間還是需要好好復習一遍,不過總的來說還是得會使用,學習源碼是為了能夠讓你更加了解該技術,在碰到問題的同時能夠更加快速的發(fā)現(xiàn)和解決問題。SbL28資訊網(wǎng)——每日最新資訊28at.com

接下來我們來分析一個Springboot的相關知識,讓我們一起開啟新篇章吧!!!SbL28資訊網(wǎng)——每日最新資訊28at.com

SbL28資訊網(wǎng)——每日最新資訊28at.com

SbL28資訊網(wǎng)——每日最新資訊28at.com

SbL28資訊網(wǎng)——每日最新資訊28at.com

 模擬實現(xiàn)簡易版SpringBoot

SbL28資訊網(wǎng)——每日最新資訊28at.com

SpringBoot作為目前最流行的框架之一,同時是每個程序員必須掌握的知識,其提供了豐富的功能模塊和開箱即用的特性,極大地提高了開發(fā)效率和降低了學習成本,使得開發(fā)人員能夠更專注于業(yè)務邏輯的實現(xiàn),而無需過多關注底層框架的配置和集成。SbL28資訊網(wǎng)——每日最新資訊28at.com

模塊創(chuàng)建

創(chuàng)建一個Springboot源碼模塊,主要用來實現(xiàn)SpringBoot的核心編程邏輯,類似導入SpringBoot依賴。SbL28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個應用模塊Demo,用來實現(xiàn)業(yè)務邏輯測試我們自己編寫好的Springboot代碼。SbL28資訊網(wǎng)——每日最新資訊28at.com

依賴導入

由于SpringBoot是依賴于Spring的也依賴SpringMVC,所以我們也得依賴Spring和SpringMVC,導入Spring與SpringMVC的相關jar。SbL28資訊網(wǎng)——每日最新資訊28at.com

<dependencies>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>5.3.18</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-web</artifactId>        <version>5.3.18</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-webmvc</artifactId>        <version>5.3.18</version>    </dependency>    <dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>4.0.1</version>    </dependency>    <dependency>        <groupId>org.apache.tomcat.embed</groupId>        <artifactId>tomcat-embed-core</artifactId>        <version>9.0.60</version>    </dependency></dependencies>

而Demo模塊就可以類似平常一樣,隨便寫需要什么導入什么,但是得依賴于我們自己寫的SpringBoot模塊。SbL28資訊網(wǎng)——每日最新資訊28at.com

<dependencies>    <dependency>        <groupId>com.simulate.example</groupId>        <artifactId>springboot</artifactId>        <version>1.0-SNAPSHOT</version>    </dependency></dependencies>

代碼編寫

Demo模塊的代碼直接就正常編寫邏輯,定義一個Controller,Service一個接口請求方法執(zhí)行“/test”。SbL28資訊網(wǎng)——每日最新資訊28at.com

SpringBoot模塊,效仿真正的SpringBoot項目在項目啟動類里面存在一個注解,傳入配置類,然后調(diào)用run方法即可。SbL28資訊網(wǎng)——每日最新資訊28at.com

/** * @author dream */@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Configuration@ComponentScanpublic @interface DemoSpringBootApplication {}public class MySpringApplication {    public static void run(Class clazz){    }}

首先我們需要去定義一個核心的注解類和一個啟動類DemoSpringApplication。SbL28資訊網(wǎng)——每日最新資訊28at.com

定義完這兩個類此時我們就可以去編寫Demo業(yè)務的啟動類,之前是表示@SpringBootApplication,現(xiàn)在通過我們自定義的注解來實現(xiàn)。SbL28資訊網(wǎng)——每日最新資訊28at.com

@DemoSpringBootApplicationpublic class MyApplication {     public static void main(String[] args) {        MySpringApplication.run(MyApplication.class);    }}

實現(xiàn)run方法邏輯

我想著當run方法結束后,我們就可以在瀏覽器里面訪問我們之前定義好的test路徑,那么run方法必定會去啟動Tomcat服務才能夠在瀏覽器里面訪問,所在方法里面必須去啟動一個Tomcat服務。SbL28資訊網(wǎng)——每日最新資訊28at.com

同時我們需要掃描得到Spring的相關類,同時還得利用Springmvc去進行相關操作,將DispatcherServlet加入到Tomcat中。SbL28資訊網(wǎng)——每日最新資訊28at.com

在run方法里面需要實現(xiàn)邏輯:創(chuàng)建一個Spring容器,創(chuàng)建Tomcat對象,創(chuàng)建DispatcherServlet對象并且和前面創(chuàng)建出來的Spring容器進行綁定將DispatcherServlet添加到Tomcat中,最后啟動Tomcat。SbL28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建Spring容器

public static void run(Class clazz) {  AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();    applicationContext.register(clazz);     applicationContext.refresh(); }

創(chuàng)建AnnotationConfigWebApplicationContext容易傳入class類就表示該clazz為配置類,Spring就會去掃描類上的相關注解,這時候就會掃描到我們自己寫好的@DemoSpringBootApplication注解,然后該注解內(nèi)存存在@ComponentScan注解等都會一并去掃描實現(xiàn),ComponentScan就是去掃描路徑找到bean對象,如果沒有指定路徑默認就是配置類所在包路徑,就會將Demo的Controller類掃描到Spring中,并將訪問地址掃描到其中。SbL28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建Tomcat對象與DispatcherServlet并綁定啟動

public static void startTomcat(WebApplicationContext applicationContext){    Tomcat tomcat = new Tomcat();    Server server = tomcat.getServer();    Service service = server.findService("Tomcat");    Connector connector = new Connector();    connector.setPort(8081);    Engine engine = new StandardEngine();    engine.setDefaultHost("localhost");    Host host = new StandardHost();    host.setName("localhost");    String contextPath = "";    Context context = new StandardContext();    context.setPath(contextPath);    context.addLifecycleListener(new Tomcat.FixContextListener());    host.addChild(context);    engine.addChild(host);    service.setContainer(engine);    service.addConnector(connector);    tomcat.addServlet(contextPath, "dispatcher", new DispatcherServlet(applicationContext));    context.addServletMappingDecoded("/*", "dispatcher");    try {        tomcat.start();    } catch (LifecycleException e) {        e.printStackTrace();    }}

startTomcat方法就是啟動Tomcat,需要傳遞一個容器,然后綁定8081端口,在瀏覽器中我們就可以通過“l(fā)ocalhost:8081/test”來訪問。SbL28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片SbL28資訊網(wǎng)——每日最新資訊28at.com

SbL28資訊網(wǎng)——每日最新資訊28at.com

SbL28資訊網(wǎng)——每日最新資訊28at.com

 總結

SbL28資訊網(wǎng)——每日最新資訊28at.com

開篇簡單模擬一下SpringBoot的過程,后期逐步來分析一下SpringBoot中的相關源碼。SbL28資訊網(wǎng)——每日最新資訊28at.com

強調(diào)一點:其中大量運用Spring的相關知識,如果有不理解的地方可以提出來或者去翻閱前面的知識點。SbL28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-55277-0.html簡易版的SpringBoot是如何實現(xiàn)的!!!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: ElasticSearch 的概念解析與使用方式

下一篇: 我們一起聊聊如何做程序的性能優(yōu)化

標簽:
  • 熱門焦點
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數(shù)或類的行為。裝飾器本質(zhì)上是一個函數(shù),它接受另一個函數(shù)或類作為參數(shù),并返回一個新的函數(shù)或類。它們通常用
  • 電視息屏休眠仍有網(wǎng)絡上傳 愛奇藝被質(zhì)疑“薅消費者羊毛”

    記者丨寧曉敏 見習生丨汗青出品丨鰲頭財經(jīng)(theSankei) 前不久,愛奇藝發(fā)布了一份亮眼的一季報,不僅營收和會員營收創(chuàng)造歷史最佳表現(xiàn),其運營利潤也連續(xù)6個月實現(xiàn)增長。自去年年初
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務調(diào)整,將于9月6日正式停止運營,這意味著騰訊音樂長音頻業(yè)務走向消亡。騰訊在長音頻領域還在摸索。為
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大&ldquo;烤&rdquo;之下的除了眾生,還有各大企業(yè)發(fā)布的ESG報告。ESG是&ldquo;環(huán)境保
  • 余承東:AI大模型技術的發(fā)展將會帶來下一代智能終端操作系統(tǒng)的智慧體驗

    8月4日消息,2023年華為開發(fā)者大會(HDC.Together)今天正式開幕,華為發(fā)布HarmonyOS 4、全新升級的鴻蒙開發(fā)套件、HarmonyOS Next開發(fā)者預覽版本等一系列
  • 三星顯示已開始為AR設備研發(fā)硅基LED微顯示屏

    7月18日消息,據(jù)外媒報道,隨著蘋果首款頭顯產(chǎn)品Vision Pro在6月份正式推出,AR/VR/MR等頭顯產(chǎn)品也就將成為各大公司下一個重要的競爭領域,對顯示屏這一關
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
  • SN570 NVMe SSD固態(tài)硬盤 價格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top