此文章适合具有一定的java基础的同学看哦,如果有看不懂的基本代码还是先补补java基础哦。
此教程带您不使用xml文件而是纯注解开发,易懂、快捷、迅速,从0开始搭建,很快就能构建起一个SpringMVC项目,能学到两种使用tomcat部署的方法,并尽量对每个重点进行讲解,接下来开始吧。
目录
IDEA建立项目
引入依赖
建立软件包
编辑开始开发
部署tomcat
第一种方式
第二种方式
IDEA建立项目
从idea新建项目,这个大家总会吧。
先建个空项目,自定义名字、项目位置等,这些都可以随便,然后完成。
完成后在空项目里新建模块。
选择maven,java版本我依旧用万年java8
引入依赖
完成后便能看到项目的结构,我们编辑pom.xml文件,引入相关依赖,主要是两个依赖
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
可以看到springmvc版本是5.2.10,大家还是尽量跟我保持一致即可,然后点击一下maven图标按钮,会自动下载到本地maven仓库,没下载过的就是会显示红色,我这里已经下载过了所以是白色字,如果下载缓慢可以配置仓库源,可以百度搜索相关教程或查看文章:idea中Maven镜像源详细配置步骤记录(对所有项目)_java_脚本之家
如果没看到有maven按钮则从idea右边点出来,真的很保姆了。
建立软件包
下载完成后我们在java目录上右键,新建软件包
主要是controller和config包,所以我的是com.xiaoya.controller和com.xiaoya.config
开始开发
接下来是重点,我们在config包中新建ServletInit类(当然这个名字你随意取),然后我们需要继承这个类AbstractDispatcherServletInitializer,很多同学觉得这个类难记,其实我也记不住,记住前面这几个字母就行了,idea会自动提示的,如果怕忘,自己做好笔记就行了。
这个时候该类会爆红,因为要实现里面的三个方法,将鼠标放到红线上,就会提示你"实现方法",我们点击一下"实现方法"就行了(其实你按快捷键ctrl+i也行)
这个时候默认是这样子的
我们主要改一下图中标记的两个方法
package com.xiaoya.config;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
public class ServletInit extends AbstractDispatcherServletInitializer {
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(Config.class);
return ctx;
}
protected String[] getServletMappings() {
return new String[]{"/"};
}
protected WebApplicationContext createRootApplicationContext() {
return null;
}
}
第一个方法目的是要向Context中注册配置类,其中的Config.class是我们接下来要在config包新建的类。
第二个方法的内容很容易看出就是当我们进行请求时要从 / 路径开始。
然后我们在config包新建前面所说的Config类,内容不用写,就在上面写2个注解即可
@Configuration
@ComponentScan("com.xiaoya.controller")
第一个注解即标记为配置类,第二个注解就是扫描com.xiaoya.controller包里面的类
接着在controller包新建TestController类,在类上面写上@Controller,即控制层,我们来在里面写个函数返回hello字符串,然后使用@RequestMapping("/hello")注解,即访问/hello时执行hello函数,@ResponseBody就是返回响应体,即返回"hello"字符串,如果不加这个注解的话会去寻找静态资源下的hello文件而不是返回字符串,文章后面会讲到。
package com.xiaoya.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "hello";
}
}
这个时候就完成了非常简单,接下来我们来部署tomcat容器启动:
部署tomcat
第一种方式
第一种方式就是通过maven插件,我们在pom.xml中添加tomcat插件,然后点击maven按钮下载
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
下载完成后我们点击添加配置,在弹出的界面中点击左上角的 + 按钮,选择maven
在运行命令行那里写上tomcat7:run,然后确定即可。写的时候会有提示的,前提是前面所说的tomcat的插件已经下载好了。
接着在pom.xml中添加
<packaging>war</packaging>
即打为war包的形式运行,点击一下maven按钮,只要pom.xml内容有变更就点一下maven按钮就对了。
都完成后便能发现有绿色的运行按钮了,我们点击就能启动。
如果不出意外的话应该要出意外了,在运行的过程中提示main目录下不存在webapp目录
那这很简单,在main目录下建webapp目录就行了
然后重新启动没有错误了,访问http://127.0.0.1:8080/hello,就能看到响应体字符串了
第二种方式
第二种便是下载tomcat,尽量选择版本9及以前的版本,10好像测试的时候有点问题,可以在我的资源下载:
tomcat8
https://download.csdn.net/download/MKIDM/90085926https://download.csdn.net/download/MKIDM/90085926tomcat9
https://download.csdn.net/download/MKIDM/90085933https://download.csdn.net/download/MKIDM/90085933下载任一版本后点击编辑配置
在弹出的界面中依旧点击左上角的+,选择Tomcat服务器-本地
名称任意,点击配置,选择你下载的tomcat所在的位置
选择好主目录后下面的基目录会自动调好的不用管,点击确定
此时我们看到有个警告,我们点击右边的修复
此时可以看到弹出来两个工件让我们选择,选择任一一个都可以
应用程序的上下文就是根路径,为了方便我们也可以改成 /,看您自己的意愿
点击修复的时候之所以有那两个工件那是因为我们前面已经通过maven生成好了,如果先用这个方法的话是没有工件的,那我们也可以点击文件--项目结构
点到工件,就能看到这两个工件
那么我们把它删除,说一下如果没有工件时该怎么创建,点击 - 就能删除,删除这2个工件
点击+按钮,选择Web应用程序:展开型,点击基于模块,选择我们这个项目的模块,我们这本来就只有一个模块,所以直接确定就行了。
这样就可以看见生成好了
然后我们重新配置tomcat,点到部署,点击+按钮,选择工件即可。
然后点击运行按钮即可,会自动跳转到浏览器,访问/hello路径就行了。注意上下文的路径,如果上下文的路径默认没更改的话根路径就不是/,如图应该是/springmvc1_war_exploded,所以没更改的话应该访问/springmvc1_war_exploded/hello。自动跳转到浏览器的时候也是跳到/springmvc1_war_exploded
如果没改上下文路径的话访问http://127.0.0.1:8080/springmvc1_war_exploded/hello即可看到回显字符串,就不演示了。
所以通过以上我们就发现通过纯注解也可以快速地就搭建SpringMVC项目,其实过程说的比较啰嗦了,主要是照顾到一些新手,所以有很多保姆级讲解,操作上能讲的都尽量讲了,有一定经验的可以跳着看。
源码:https://download.csdn.net/download/MKIDM/90086092https://download.csdn.net/download/MKIDM/90086092总结下来就是:
1. 在config包中新建配置类,添加注解@Configuration、@ComponentScan("com.xiaoya.controller")
2. 在config包建第二个类,继承AbstractDispatcherServletInitializer类,实现其中的三个方法,主要改动其中二个方法
3. 在controller包建控制请求路径的类,类上添加注解@Controller。
@RequestMapping("/hello2")就是请求路径
@ResponseBody 声明响应体就是该方法返回的内容,而不是静态资源名。
4. 部署tomcat容器,介绍了两种方法。
看到这已经差不多了,但是我们得把坑补完,前面说过不加@ResponseBody的话返回的就是静态资源名,如图,我们将@ResponseBody注解去掉,返回的内容改为hello.jsp
然后在webapp目录新建hello.jsp
body里面随便写点内容
启动tomcat,访问http://localhost:8080/springmvc1_war_exploded/hello就是访问hello.jsp
当然,访问http://localhost:8080/springmvc1_war_exploded/hello.jsp也行。
好了这篇文章到此结束了,有不懂的可以评论或者私信我,看到了就会回,现在看几个笑话放松一下吧*⸜( •ᴗ• )⸝*:https://blog.csdn.net/mkidm/category_12833444.html?spm=1001.2014.3001.5482