欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 創(chuàng)建項(xiàng)目

1.打開(kāi)Idea,并點(diǎn)擊新建項(xiàng)目

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

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

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

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

4.打開(kāi)項(xiàng)目 -> 右鍵項(xiàng)目名 -> 點(diǎn)擊添加框架支持

有時(shí)會(huì)找不到,重復(fù)這個(gè)過(guò)程即可

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

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

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

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

6.補(bǔ)全目錄

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

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

  • web目錄:該目錄的文件能被外界訪問(wèn)
  • WEB-INF目錄:該目錄的文件不對(duì)外展示
  • web.xml:主要用來(lái)配置FilterListener、Servlet

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

不這樣做的話,工件中就沒(méi)有我們通過(guò)Maven引入的Jar包,會(huì)導(dǎo)致項(xiàng)目中用到引入Jar包的地方出錯(cuò),如下所示
如: 使用@Controller注解設(shè)置請(qǐng)求時(shí),會(huì)報(bào)404

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

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

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

2. 配置Tomcat

點(diǎn)擊當(dāng)前文件

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

點(diǎn)擊編輯配置

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

點(diǎn)擊+

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

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

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

點(diǎn)擊配置

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

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

如果是正確的話,idea會(huì)自動(dòng)幫你填寫(xiě)Tomcat基目錄

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

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

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

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

我們添加框架支持的時(shí)候就會(huì)創(chuàng)建一個(gè)相關(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)建一個(gè)專用于SpringMVC的配置類-----SpringMvcConfig

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

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

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

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

  • 該類要繼承AbstractDispatcherServletInitializer
    • AbstractDispatcherServletInitializer類:用于Tomcat啟動(dòng)
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;

//定義一個(gè)servelt容器啟動(dòng)的配置類,用于加載spring的配置類
public class SpringMvcInit  extends AbstractDispatcherServletInitializer {


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

    }

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

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

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

public class SpringMvcInit  extends AbstractAnnotationConfigDispatcherServletInitializer {

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

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

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

}

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

相關(guān)文章

  • java中g(shù)c算法實(shí)例用法

    java中g(shù)c算法實(shí)例用法

    在本篇文章里小編給大家整理了一篇關(guān)于java中g(shù)c算法實(shí)例用法,有興趣的朋友們可以參考學(xué)習(xí)下。
    2021-01-01
  • 啟動(dòng)SpringBoot報(bào)JavaMail加載錯(cuò)誤的原因分析和解決

    啟動(dòng)SpringBoot報(bào)JavaMail加載錯(cuò)誤的原因分析和解決

    這篇文章給大家介紹了啟動(dòng)SpringBoot報(bào)JavaMail加載錯(cuò)誤的原因分析和解決,文中通過(guò)代碼示例給出了詳細(xì)的原因分析和解決方法,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • 一篇文章帶你了解Java基礎(chǔ)-抽象

    一篇文章帶你了解Java基礎(chǔ)-抽象

    這篇文章主要給大家介紹了關(guān)于Java抽象定義以及舉例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java之SSM中bean相關(guān)知識(shí)匯總案例講解

    Java之SSM中bean相關(guān)知識(shí)匯總案例講解

    這篇文章主要介紹了Java之SSM中bean相關(guān)知識(shí)匯總案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • java實(shí)現(xiàn)飯店點(diǎn)菜系統(tǒng)

    java實(shí)現(xiàn)飯店點(diǎn)菜系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)飯店點(diǎn)菜系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 如何集成swagger2構(gòu)建Restful API

    如何集成swagger2構(gòu)建Restful API

    這篇文章主要介紹了如何集成swagger2構(gòu)建Restful API,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • springboot集成測(cè)試?yán)锏膔edis

    springboot集成測(cè)試?yán)锏膔edis

    這篇文章主要介紹了springboot集成測(cè)試?yán)锏膔edis,本文給大家分享了源碼,添加依賴添加mock的方法,需要的朋友可以參考下
    2018-11-11
  • 關(guān)于JFormDesigner的安裝及破姐超詳細(xì)教程

    關(guān)于JFormDesigner的安裝及破姐超詳細(xì)教程

    JFormDesigner是一種先進(jìn)的圖形用戶界面Swing?的設(shè)計(jì)工具(非開(kāi)源),具有一個(gè)獨(dú)立的開(kāi)發(fā)工具產(chǎn)品和基于不同開(kāi)發(fā)工具如Eclipse、NetBeans等的開(kāi)發(fā)插件,本文給大家介紹JFormDesigner安裝破解教程,感興趣的朋友一起看看吧
    2023-12-12
  • SpringBoot實(shí)現(xiàn)過(guò)濾器攔截器的耗時(shí)對(duì)比

    SpringBoot實(shí)現(xiàn)過(guò)濾器攔截器的耗時(shí)對(duì)比

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)過(guò)濾器攔截器的輸出接口耗時(shí)對(duì)比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-06-06
  • java 排序算法之冒泡排序

    java 排序算法之冒泡排序

    這篇文章主要介紹了java 排序算法之冒泡排序,文中運(yùn)用大量的代碼講解相關(guān)知識(shí),非常詳細(xì),感興趣的小伙伴可以參考一下
    2021-09-09

最新評(píng)論