<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SpringBootMVC相關內容

      SpringMVC

      基于java實現MVC模型的輕量級Web框架
      做Web程序開發
      當我們的瀏覽器發出一個請求給到后端服務器以后,由servlet負責處理請求,
      servlet只是能夠接收請求產生響應,不能進行真正的數據處理
      于是將后端服務拆分成
      三層架構
      web
      負責頁面數據的收集和產生頁面
      service
      負責業務處理
      dao
      負責數據的持久化,存儲和查詢數據
      最終得到數據并在表現層中組織出最終要得到的界面,再將該頁面反饋給我們的瀏覽器

      進階版-MVC模式
      將servlet三成三塊
      web變成 - contrller、View、Model三個部分
          1. 瀏覽器發送請求給controller控制器
          2. 由控制器調用我們的業務層
          3. 業務層調用數據層
          4. service得到數據之后最終展示出來給Model數據模型
          5. 然后將View也就是頁面抽取出來,由view和model配合在一起工作
          6. 最終得到頁面反饋給用戶
      View分為
          HTML+CSS+VUE+ElemetUIG構建頁面
      瀏覽器通過View用**異步調用**的形式調用我們的后端服務器
          Controller調用service調用dao
      調用完之后最終會得到一個Model的對象
      
      后端服務器和前端頁面通過json數據模式打交道
      

      SpringMVC負責
      以上Controller對應服務器開發,同時將操作完的數據轉成json格式交給頁面

      M - 數據和業務
      V - HTML
      C - 交接

      Spring SpringMVC SpringBoot 區別

      Spring
      IOC容器,用來管理Bean,使用依賴注入實現控制反轉,降低耦合。可以很方便地整合各種框架
      提供AOP機制彌補OOP代碼重復的問題:
      將不同類和方法中的相同的處理邏輯,抽取成切面,自動注入給方法執行
      如日志、異常等 - 面向切面編程
      SpringMVC
      Spring對Web框架的一個解決方案,提供了一個總的前端控制器Servlet
      用來接收請求,然后定義了一套路由策略(從url到handle的映射)及適配執行handle
      將handle結果使用視圖解析技術生成視圖展現給前端

      SpringBoot
      Spring提供的一個快速開發包,能更快速地開發spring+springmvc應用
      簡化配置(約定大于配置),整合了一系列解決方案(starter機制)
      redis、mongoDB、es可以開箱即用

      首先創建一個com.example.controller包
      設置一個UserController類

      package com.example.controller;
      
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.RequestMapping;
      
      @Controller
      public class UserController {
      
          @RequestMapping("/save")
          public void save(){
              System.out.println("save");
          }
      
      }
      
      1. Serlvet容器初始化配置類
        創建一個com.example.config包
        SerlvetContainersintConfig - servlet容器配置
      public class SerlvetContainersintConfig extends AbstractDispatcherServletInitializer { //分派器Servlet初始化器
      
          @Override
          //Web相關組件:Controller、視圖解析器等
          //Web上下文:處理HTTP請求、響應
          protected WebApplicationContext createServletApplicationContext() { //要求加載SpringMVC的容器對象
              AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
              ctx.register(SpringMvcConfig.class);
              return ctx;
          }
      
          @Override
          protected String[] getServletMappings() { //
              return new String[]{"/"}; //所有請求都歸spring處理
          }
      
          @Override
          protected WebApplicationContext createRootApplicationContext() {  //加載Spring配置的容器對象
              return null;
          }
      }
      
      
      ```AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();```
      創建一個基于注解配置的Web應用上下文對象
      AnnotationConfigWebApplicationContext - 注釋配置Web應用上下文
      

      報錯

      真的煩
      com.intellij.execution.ExecutionException: 找不到此 Web 模塊的
      修改selvet-api依賴

      <dependency>
                  <groupId>jakarta.servlet</groupId>
                  <artifactId>jakarta.servlet-api</artifactId>
                  <version>6.0.0</version>
                  <scope>provided</scope>
              </dependency>
      

      not found for the web module
      項目結構-工作-添加一個什么

      運行之后會彈出一個404界面
      我們在UserController下添加一個@ResponseBody
      再將返回值改成String
      然后return"{'info' : 'springmvc'}";
      具體如下

      @Controller
      public class UserController {
      
          @RequestMapping("/save")
          @ResponseBody
          public String save(){
              System.out.println("save");
              return"{'info' : 'springmvc'}";
          }
      
      }
      

      啟動服務器初始化過程

      1. 服務器啟動,執行ServletContainerInitConfig類,初始化web容器
      2. 執行creatServletApplicationContext方法,創建了WebApplicationContext對象
      3. 加載SpringConfig
      4. 執行@ComponentScan加載對應的bean
      5. 加載UserController,每個@RequestMapping的名稱對應一個具體的方法
      6. 執行getServletMappings方法,定義所有的請求都通過SpringMVC
        單次請求過程
      7. 發送請求localhost/save
      8. web容器發現所有請求都經過SpringMVC,將請求交給SpringMVC處理
      9. 解析請求路徑/save
      10. 由/save匹配執行對應的方法save();
      11. 執行save()
      12. 檢測到有@ResponseBody直接將save()方法的返回值作為響應體返回給請求方

      web容器
      -ServletContext
      --WebApplicationContext
      ---UserController
      /save -> save()

      posted @ 2025-09-24 17:44  Rich_S  閱讀(11)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品国产一国产二国产三| 国产日韩综合av在线| 国产极品尤物粉嫩在线观看| 亚洲熟女精品一区二区| 成人av午夜在线观看| 无码人妻精品一区二区三区下载| 九色综合国产一区二区三区| 国产亚洲国产精品二区| 精品国产成人一区二区| 丝袜美腿亚洲综合在线观看视频| 精品一区二区三区蜜桃久| 人成午夜免费大片| 中文有无人妻vs无码人妻激烈| 国产一区一一区高清不卡| 奇米四色7777中文字幕| 亚洲精品理论电影在线观看 | 亚洲高清日韩专区精品| 久久99热精品这里久久精品| 中文人妻av高清一区二区| 四虎成人精品在永久免费| 国产精品一区二区三区激情| 国产麻豆精品av在线观看| 菏泽市| 精品国产美女av久久久久| 99精品久久免费精品久久| 国精品无码一区二区三区在线蜜臀| 中文字幕人妻av12| 人妻av资源先锋影音av资源| 国产精品久久蜜臀av| 国产女主播一区| www插插插无码免费视频网站 | 日韩丝袜亚洲国产欧美一区| 人人妻人人澡人人爽人人精品电影| 久久亚洲私人国产精品| 色综合视频一区二区三区| 国产超碰无码最新上传| 国产精品毛片在线看不卡| 中文乱码字幕在线中文乱码 | 国产在线观看播放av| 99在线精品视频观看免费| 国产三级精品三级在线专区1|