日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
簡易版的SpringBoot是如何實現(xiàn)的?。?!

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

網站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網頁設計、網站建設、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了岳陽樓免費建站歡迎大家使用!

接下來我們來分析一個Springboot的相關知識,讓我們一起開啟新篇章吧?。?!

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

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

模塊創(chuàng)建

創(chuàng)建一個Springboot源碼模塊,主要用來實現(xiàn)SpringBoot的核心編程邏輯,類似導入SpringBoot依賴。

創(chuàng)建一個應用模塊Demo,用來實現(xiàn)業(yè)務邏輯測試我們自己編寫好的Springboot代碼。

依賴導入

由于SpringBoot是依賴于Spring的也依賴SpringMVC,所以我們也得依賴Spring和SpringMVC,導入Spring與SpringMVC的相關jar。


    
        org.springframework
        spring-context
        5.3.18
    
    
        org.springframework
        spring-web
        5.3.18
    
    
        org.springframework
        spring-webmvc
        5.3.18
    


    
        javax.servlet
        javax.servlet-api
        4.0.1
    


    
        org.apache.tomcat.embed
        tomcat-embed-core
        9.0.60
    

而Demo模塊就可以類似平常一樣,隨便寫需要什么導入什么,但是得依賴于我們自己寫的SpringBoot模塊。


    
        com.simulate.example
        springboot
        1.0-SNAPSHOT
    

代碼編寫

Demo模塊的代碼直接就正常編寫邏輯,定義一個Controller,Service一個接口請求方法執(zhí)行“/test”。

SpringBoot模塊,效仿真正的SpringBoot項目在項目啟動類里面存在一個注解,傳入配置類,然后調用run方法即可。

/**
 * @author dream
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Configuration
@ComponentScan
public @interface DemoSpringBootApplication {}


public class MySpringApplication {
    public static void run(Class clazz){


    }
}

首先我們需要去定義一個核心的注解類和一個啟動類DemoSpringApplication。

定義完這兩個類此時我們就可以去編寫Demo業(yè)務的啟動類,之前是表示@SpringBootApplication,現(xiàn)在通過我們自定義的注解來實現(xiàn)。

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

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

我想著當run方法結束后,我們就可以在瀏覽器里面訪問我們之前定義好的test路徑,那么run方法必定會去啟動Tomcat服務才能夠在瀏覽器里面訪問,所在方法里面必須去啟動一個Tomcat服務。

同時我們需要掃描得到Spring的相關類,同時還得利用Springmvc去進行相關操作,將DispatcherServlet加入到Tomcat中。

在run方法里面需要實現(xiàn)邏輯:創(chuàng)建一個Spring容器,創(chuàng)建Tomcat對象,創(chuàng)建DispatcherServlet對象并且和前面創(chuàng)建出來的Spring容器進行綁定將DispatcherServlet添加到Tomcat中,最后啟動Tomcat。

創(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注解,然后該注解內存存在@ComponentScan注解等都會一并去掃描實現(xiàn),ComponentScan就是去掃描路徑找到bean對象,如果沒有指定路徑默認就是配置類所在包路徑,就會將Demo的Controller類掃描到Spring中,并將訪問地址掃描到其中。

創(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”來訪問。

圖片

 總結

開篇簡單模擬一下SpringBoot的過程,后期逐步來分析一下SpringBoot中的相關源碼。

強調一點:其中大量運用Spring的相關知識,如果有不理解的地方可以提出來或者去翻閱前面的知識點。


分享名稱:簡易版的SpringBoot是如何實現(xiàn)的?。?!
路徑分享:http://www.5511xx.com/article/cdccgsi.html