这篇“怎么使用idea搭建全注解式开发的springMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea
这篇“怎么使用idea搭建全注解式开发的springMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea搭建全注解式开发的springmvc项目”文章吧。
打开Idea
,并点击新建项目
注:使用的是
2022.2
的商业版,该版本跟2021.2
的商业版创建Maven
项目不一样
点击右侧的新建项目 -> 取名 -> 创建
这样我们就创建了一个空依赖的Maven
项目
打开项目 -> 右键项目名 -> 点击添加框架支持
有时会找不到,重复这个过程即可
勾选WEB
应用程序,然后点击确定,若出现Web
目录,则加载完毕
这创建的是传统的
JAVA WEB
项目:带Web
目录的,该目录下存在WEB-INF
目录
补全目录
创建完的目录结构如下, 缺失了一些目录,需要自己在test
目录下创建resource
目录
web
目录:该目录的文件能被外界访问
WEB-INF
目录:该目录的文件不对外展示
web.xml
:主要用来配置Filter
、Listener
、Servlet
等
在pom.xml
文件里加入如下代码,然后刷新Maven
,这样会在target
里生成war
文件
不这样做的话,工件中就没有我们通过
Maven
引入的jar
包,会导致项目中用到引入Jar
包的地方出错,如下所示
如: 使用@Controller
注解设置请求时,会报404
<!--设置打包方式为war--><packaging>war</packaging>
或者项目结构->工件->创建lib
目录->添加Jar
包
点击当前文件
点击编辑配置
点击+
找到Tomcat
服务器,点击下面的本地
点击配置
点击Tomcat
主目录旁的文件图标,选择你Tomcat
安装到的文件夹所对应的路径,点击确定
这个文件夹应该是bin
目录的父目录
如果是正确的话,
idea
会自动帮你填写Tomcat
基目录
配置工件:点击修复 -> 会进入一个新页面 -> 修改应用程序上下文,保留一个/
即可
我们添加框架支持的时候就会创建一个相关的工件
在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>
创建Controller
包
在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"; } }
创建Config
包
在Config
包下创建一个专用于SpringMVC
的配置类-----SpringMvcConfig
该配置类将@ComponentScan
注解只用于扫描Controller
包
为什么要有
SpringMVC
专门的配置类, 就是为了bean
管理起来更清晰
就是将controller
层放在springmvc
容器中管理, 其他如service
层放在父容器Spring
中管理
@Configuration@ComponentScan("org.example.Controller")//扫描Controller包public class SpringMvcConfig {}
在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; }}
该类要继承`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项目”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。
--结束END--
本文标题: 怎么使用Idea搭建全注解式开发的SpringMVC项目
本文链接: https://lsjlt.com/news/353175.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0