您好,登录后才能下订单哦!
这篇“怎么使用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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。