最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Idea搭建全注解式開發(fā)的SpringMVC項目

 更新時間:2023年03月24日 10:55:12   作者:柳衣白卿  
這篇文章主要介紹了如何使用Idea搭建全注解式開發(fā)的SpringMVC項目,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1. 創(chuàng)建項目

1.打開Idea,并點擊新建項目

注:使用的是2022.2的商業(yè)版,該版本跟2021.2的商業(yè)版創(chuàng)建Maven項目不一樣

2.點擊右側(cè)的新建項目 -> 取名 -> 創(chuàng)建

Snipaste_2023-03-10_19-13-23.png

3.這樣我們就創(chuàng)建了一個空依賴的Maven項目

4.打開項目 -> 右鍵項目名 -> 點擊添加框架支持

有時會找不到,重復(fù)這個過程即可

Snipaste_2023-03-10_19-16-30.png

5.勾選Web應(yīng)用程序,然后點擊確定,若出現(xiàn)Web目錄,則加載完畢

這創(chuàng)建的是傳統(tǒng)的Java Web項目:帶Web目錄的,該目錄下存在WEB-INF目錄

Snipaste_2023-03-10_19-17-37.png

6.補全目錄

創(chuàng)建完的目錄結(jié)構(gòu)如下, 缺失了一些目錄,需要自己在test目錄下創(chuàng)建resource目錄

Snipaste_2023-03-10_20-21-42.png

  • web目錄:該目錄的文件能被外界訪問
  • WEB-INF目錄:該目錄的文件不對外展示
  • web.xml:主要用來配置Filter、Listener、Servlet

7.在pom.xml文件里加入如下代碼,然后刷新Maven,這樣會在target里生成war文件

不這樣做的話,工件中就沒有我們通過Maven引入的Jar包,會導(dǎo)致項目中用到引入Jar包的地方出錯,如下所示
如: 使用@Controller注解設(shè)置請求時,會報404

Snipaste_2023-03-21_18-25-14.png

<!--設(shè)置打包方式為war-->
<packaging>war</packaging>

8.或者項目結(jié)構(gòu)->工件->創(chuàng)建lib目錄->添加Jar

2. 配置Tomcat

點擊當(dāng)前文件

Snipaste_2023-03-10_20-32-32.png

點擊編輯配置

Snipaste_2023-03-10_20-33-12.png

點擊+

Snipaste_2023-03-10_20-33-49.png

找到Tomcat服務(wù)器,點擊下面的本地

Snipaste_2023-03-10_20-33-58.png

點擊配置

Snipaste_2023-03-10_20-36-17.png

  • 點擊Tomcat主目錄旁的文件圖標(biāo),選擇你Tomcat安裝到的文件夾所對應(yīng)的路徑,點擊確定
    • 這個文件夾應(yīng)該是bin目錄的父目錄

如果是正確的話,idea會自動幫你填寫Tomcat基目錄

Snipaste_2023-03-10_20-36-26.png

配置工件:點擊修復(fù) -> 會進入一個新頁面 -> 修改應(yīng)用程序上下文,保留一個即可

Snipaste_2023-03-10_20-45-47.png

Snipaste_2023-03-10_20-43-55.png

我們添加框架支持的時候就會創(chuàng)建一個相關(guān)的工件

3. 示例

1.在pom.xml文件中引入相關(guān)依賴

<!-- 添加springmvc依賴 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.3.18</version>
</dependency>
<!-- 添加servlet 依賴 -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>

2.創(chuàng)建Controller

3.在Controller包下創(chuàng)建UserController.java文件, 復(fù)制下面代碼到該文件中

package org.example.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
    public class UserController {

        @RequestMapping("/save")
        @ResponseBody
        public String index() {
            return "index";
        }
    }

4.創(chuàng)建Config

5.在Config包下創(chuàng)建一個專用于SpringMVC的配置類-----SpringMvcConfig

該配置類將@ComponentScan注解只用于掃描Controller

為什么要有SpringMVC專門的配置類, 就是為了bean管理起來更清晰
就是將controller層放在springmvc容器中管理, 其他如service層放在父容器Spring中管理

@Configuration
@ComponentScan("org.example.Controller")
//掃描Controller包
public class SpringMvcConfig {
}

6.在Config包下創(chuàng)建Tomcat啟動類SpringMvcInit

  • 該類要繼承AbstractDispatcherServletInitializer
    • AbstractDispatcherServletInitializer類:用于Tomcat啟動
package org.example.Config;

import org.example.Config.SpringMvcConfig;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

//定義一個servelt容器啟動的配置類,用于加載spring的配置類
public class SpringMvcInit  extends AbstractDispatcherServletInitializer {


    //1. 將controller層放在springmvc容器中,其他如service層放在父容器,bean管理起來更清晰
    //2. 也可以沒有父容器,將所有bean都放在springmvc容器中
    @Override
    //加載springMVC容器的配置類
    protected WebApplicationContext createServletApplicationContext() {
        //創(chuàng)建SpringMVC容器
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        //加載配置類--SpringMvcConfig
        ctx.register(SpringConfig.class);
        return ctx;

    }

    @Override
    //配置哪些請求要被攔截,歸屬SpringMVC處理
    // /: 攔截所有請求
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    //加載Spring容器的配置類
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

2. 該類要繼承`AbstractAnnotationConfigDispatcherServletInitializer`類, 用于簡化開發(fā)

public class SpringMvcInit  extends AbstractAnnotationConfigDispatcherServletInitializer {

    //1. 將controller層放在springmvc容器中,其他如service層放在父容器,bean管理起來更清晰
    //2. 也可以沒有父容器,將所有bean都放在springmvc容器中
    // === 上面的createRootApplicationContext()做的事
    //用來加載  springmvc容器的父容器spring的配置類
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    //加載springMVC的配置類
    //=== 上面的createServletApplicationContext()做的事
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    //配置哪些請求要被攔截,歸屬SpringMVC處理
    // /: 攔截所有請求
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

}

 ??到此這篇關(guān)于如何使用Idea搭建全注解式開發(fā)的SpringMVC項目的文章就介紹到這了,更多相關(guān)idea搭建SpringMVC項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java并行處理的實現(xiàn)

    Java并行處理的實現(xiàn)

    并行計算一般是指許多指令得以同時進行的計算模式。本文主要介紹了Java并行處理的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • SpringBoot整合mybatis常見問題(小結(jié))

    SpringBoot整合mybatis常見問題(小結(jié))

    這篇文章主要介紹了SpringBoot整合mybatis常見問題(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java簡單數(shù)組排序(冒泡法)

    Java簡單數(shù)組排序(冒泡法)

    這篇文章主要介紹了Java簡單數(shù)組排序,實例分析了基于冒泡法實現(xiàn)數(shù)組排序的相關(guān)技巧,簡單實用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java中CopyOnWriteArrayList的使用解析

    Java中CopyOnWriteArrayList的使用解析

    這篇文章主要介紹了Java中CopyOnWriteArrayList的使用解析,CopyOnWriteArrayList適合使用在讀操作遠遠大于寫操作的場景里,比如緩存,它不存在擴容的概念,每次寫操作都要復(fù)制一個副本,在副本的基礎(chǔ)上修改后改變Array引用,需要的朋友可以參考下
    2023-12-12
  • java給釘釘郵箱發(fā)送郵件功能實現(xiàn)

    java給釘釘郵箱發(fā)送郵件功能實現(xiàn)

    文章介紹了如何使用Java給釘釘郵箱發(fā)送郵件,包括開通POP和IMAP、引入pom、邏輯處理、直接添加前端傳來的MultipartFile、添加多個附件以及給多個郵箱發(fā)送郵件等步驟,感興趣的朋友一起看看吧
    2025-02-02
  • Mybatis @SelectKey用法解讀

    Mybatis @SelectKey用法解讀

    這篇文章主要介紹了Mybatis @SelectKey用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java 實現(xiàn)Excel文檔添加超鏈接的代碼

    Java 實現(xiàn)Excel文檔添加超鏈接的代碼

    超鏈接即內(nèi)容鏈接,通過給特定對象設(shè)置超鏈接,可實現(xiàn)載體與特定網(wǎng)頁、文件、郵件、網(wǎng)絡(luò)等的鏈接,點擊鏈接載體可打開鏈接目標(biāo),在文檔處理中是一種比較常用的功能,本文將介紹通過Java程序給Excel文檔添加超鏈接的方法,感興趣的朋友一起看看吧
    2020-02-02
  • Java?根據(jù)XPATH批量替換XML節(jié)點中的值

    Java?根據(jù)XPATH批量替換XML節(jié)點中的值

    這篇文章主要介紹了Java根據(jù)XPATH批量替換XML節(jié)點中的值,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Java實現(xiàn)單鏈表基礎(chǔ)操作

    Java實現(xiàn)單鏈表基礎(chǔ)操作

    大家好,本篇文章主要講的是Java實現(xiàn)單鏈表基礎(chǔ)操作,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Java Process類的詳解及實例代碼

    Java Process類的詳解及實例代碼

    這篇文章主要介紹了Java Process類的詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02

最新評論

兴城市| 当涂县| 伊金霍洛旗| 家居| 民权县| 阿尔山市| 广元市| 高阳县| 沙洋县| 长泰县| 合山市| 楚雄市| 张家川| 中山市| 青浦区| 乐安县| 平原县| 花垣县| 望谟县| 自治县| 扎鲁特旗| 乌海市| 天气| 会同县| 周宁县| 景谷| 永年县| 赤峰市| 东方市| 鹤岗市| 青龙| 琼中| 道真| 昌邑市| 白水县| 凯里市| 普陀区| 博湖县| 仁布县| 赤城县| 黑龙江省|