iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么使用Idea搭建全注解式开发的SpringMVC项目
  • 262
分享到

怎么使用Idea搭建全注解式开发的SpringMVC项目

2023-07-05 16:07:15 262人浏览 八月长安
摘要

这篇“怎么使用idea搭建全注解式开发的springMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea

这篇“怎么使用idea搭建全注解式开发springMVC项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Idea搭建全注解式开发的springmvc项目”文章吧。

1. 创建项目

打开Idea,并点击新建项目

注:使用的是2022.2的商业版,该版本跟2021.2的商业版创建Maven项目不一样

点击右侧的新建项目 -> 取名 -> 创建

怎么使用Idea搭建全注解式开发的SpringMVC项目

这样我们就创建了一个空依赖的Maven项目

打开项目 -> 右键项目名 -> 点击添加框架支持

有时会找不到,重复这个过程即可

怎么使用Idea搭建全注解式开发的SpringMVC项目

勾选WEB应用程序,然后点击确定,若出现Web目录,则加载完毕

这创建的是传统的JAVA WEB项目:带Web目录的,该目录下存在WEB-INF目录

怎么使用Idea搭建全注解式开发的SpringMVC项目

补全目录

创建完的目录结构如下, 缺失了一些目录,需要自己在test目录下创建resource目录

怎么使用Idea搭建全注解式开发的SpringMVC项目

  • web目录:该目录的文件能被外界访问

  • WEB-INF目录:该目录的文件不对外展示

  • web.xml:主要用来配置FilterListenerServlet

pom.xml文件里加入如下代码,然后刷新Maven,这样会在target里生成war文件

不这样做的话,工件中就没有我们通过Maven引入的jar包,会导致项目中用到引入Jar包的地方出错,如下所示
如: 使用@Controller注解设置请求时,会报404

怎么使用Idea搭建全注解式开发的SpringMVC项目

<!--设置打包方式为war--><packaging>war</packaging>

或者项目结构->工件->创建lib目录->添加Jar

2. 配置Tomcat

点击当前文件

怎么使用Idea搭建全注解式开发的SpringMVC项目

点击编辑配置

怎么使用Idea搭建全注解式开发的SpringMVC项目

点击+

怎么使用Idea搭建全注解式开发的SpringMVC项目

找到Tomcat服务器,点击下面的本地

怎么使用Idea搭建全注解式开发的SpringMVC项目

点击配置

怎么使用Idea搭建全注解式开发的SpringMVC项目

  • 点击Tomcat主目录旁的文件图标,选择你Tomcat安装到的文件夹所对应的路径,点击确定

    • 这个文件夹应该是bin目录的父目录

如果是正确的话,idea会自动帮你填写Tomcat基目录

怎么使用Idea搭建全注解式开发的SpringMVC项目

配置工件:点击修复 -> 会进入一个新页面 -> 修改应用程序上下文,保留一个即可

怎么使用Idea搭建全注解式开发的SpringMVC项目

怎么使用Idea搭建全注解式开发的SpringMVC项目

我们添加框架支持的时候就会创建一个相关的工件

3. 示例

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://www.lsjlt.com/news/353175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作