您好,登錄后才能下訂單哦!
這篇“怎么使用Idea搭建全注解式開發的SpringMVC項目”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么使用Idea搭建全注解式開發的SpringMVC項目”文章吧。
1.打開Idea
,并點擊新建項目
注:使用的是
2022.2
的商業版,該版本跟2021.2
的商業版創建Maven
項目不一樣
2.點擊右側的新建項目 -> 取名 -> 創建
3.這樣我們就創建了一個空依賴的Maven
項目
4.打開項目 -> 右鍵項目名 -> 點擊添加框架支持
有時會找不到,重復這個過程即可
5.勾選Web
應用程序,然后點擊確定,若出現Web
目錄,則加載完畢
這創建的是傳統的
Java Web
項目:帶Web
目錄的,該目錄下存在WEB-INF
目錄
6.補全目錄
創建完的目錄結構如下, 缺失了一些目錄,需要自己在test
目錄下創建resource
目錄
web
目錄:該目錄的文件能被外界訪問
WEB-INF
目錄:該目錄的文件不對外展示
web.xml
:主要用來配置Filter
、Listener
、Servlet
等
7.在pom.xml
文件里加入如下代碼,然后刷新Maven
,這樣會在target
里生成war
文件
不這樣做的話,工件中就沒有我們通過
Maven
引入的Jar
包,會導致項目中用到引入Jar
包的地方出錯,如下所示
如: 使用@Controller
注解設置請求時,會報404
<!--設置打包方式為war--> <packaging>war</packaging>
8.或者項目結構->工件->創建lib
目錄->添加Jar
包
點擊當前文件
點擊編輯配置
點擊+
找到Tomcat
服務器,點擊下面的本地
點擊配置
點擊Tomcat
主目錄旁的文件圖標,選擇你Tomcat
安裝到的文件夾所對應的路徑,點擊確定
這個文件夾應該是bin
目錄的父目錄
如果是正確的話,
idea
會自動幫你填寫Tomcat
基目錄
配置工件:點擊修復 -> 會進入一個新頁面 -> 修改應用程序上下文,保留一個/
即可
我們添加框架支持的時候就會創建一個相關的工件
1.在pom.xml
文件中引入相關依賴
<!-- 添加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.創建Controller
包
3.在Controller
包下創建UserController.java
文件, 復制下面代碼到該文件中
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.創建Config
包
5.在Config
包下創建一個專用于SpringMVC
的配置類-----SpringMvcConfig
該配置類將@ComponentScan
注解只用于掃描Controller
包
為什么要有
SpringMVC
專門的配置類, 就是為了bean
管理起來更清晰
就是將controller
層放在springmvc
容器中管理, 其他如service
層放在父容器Spring
中管理
@Configuration @ComponentScan("org.example.Controller") //掃描Controller包 public class SpringMvcConfig { }
6.在Config
包下創建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() { //創建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`類, 用于簡化開發
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[]{"/"}; } }
以上就是關于“怎么使用Idea搭建全注解式開發的SpringMVC項目”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。