最简集成SpringMVC、纯手工打包部署到tomcat - Go语言中文社区

最简集成SpringMVC、纯手工打包部署到tomcat


前面已经介绍了tomcat,了解了其简单的部署方法;以及ListenerFilterServlet的概念,并且自己写了写,实现了网站的简单访问。

注意到了这里和我们的SpringMVC还完全没有关系。
今天来看怎么集成SpringMVC到我们的项目中

SpringMVC文档地址;
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

1、下载依赖

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>

这里写图片描述

2、SpringMVC肯定也是相同的套路:各种Servlet、Filter、Listener

Listener:之前已经学习了通过xml的方式来装配IoC容器,产生ApplicationContext对象。那么想要在web开发中使用,SpringMVC就是靠Listener在启动时来读取并装配。

DispatcherServlet:SpringMVC的核心调度器(自己写Servlet实现调度也可以,但是吃不饱了没事干^_^)

这里写图片描述
(上图是我们之前网站的一个目录结构,为了方便我们在开发的项目里也可以创建这样的目录结构,往下看就明白了)

3、一些基础配置
这里写图片描述
在项目src下创建一个文件夹,然后在该文件里创建WEB-INF文件夹,然后做基本的web配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:context-spring.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>myapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:myapp-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>myapp</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

上图已经解释了web.xml中的2个配置项所对应的文件:
context-spring.xml可以当做是SpringMVC的全局配置文件,myapp-servlet.xml文件可以当做是专门做Servlet相关配置的。

4、context-spring.xml代码暂时如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/cache"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!--开启注解-->
    <mvc:annotation-driven/>
    <!--扫描包-->
    <!--如果扫描到有@Component、@Controller、@Service等这些注解类,则把这些类注册为bean-->
    <context:component-scan base-package="com.mydev"/>

</beans>

只开启了注解和包扫描

5、创建控制器
@Controller 负责处理由DispatcherServlet(在web.xml里配置好了DispatcherServlet的)分发的请求;
@RequestMapping 处理请求地址映射的注释,可用于类火方法上;
@ResponseBody 把内容或对象作为HTTP响应正文返回

这里写图片描述

package com.mydev.Controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class Index {
    @RequestMapping("index")
    public @ResponseBody  String index(){
        return "this is home page";
    }
}

6、编译项目没有问题,接下来就应该是准备打包,然后放入tomcat上去运行了。

这里写图片描述
我们在自己项目里创建myapp/WEB-INF就是为了以后方便,通过前面的学习我们知道要把target目录下的classes目录和lib目录都拷贝到WEB-INF目录中。当然我们还是可以按照之前方法这样搞。

但这里我们利用插件

    <packaging>war</packaging>
    <build>
        <finalName>myapp</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <webResources>
                        <resource>
                            <!-- 原配置文件的目录,相对于pom.xml文件的路径 -->
                            <directory>src/myapp/WEB-INF</directory>
                            <!-- 目标路径 -->
                            <targetPath>WEB-INF</targetPath>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>
    </build>

这里写图片描述

然后打开终端

cd 项目中(pom.xml所在的文件夹下)
#执行
mvn clean  package

这里写图片描述
myapp.war就是打包之后的文件。

7、拷贝到tomcat的web目录下
这里写图片描述
这里写图片描述
tomcat会自动解压处理。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/github_26672553/article/details/79003090
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-25 01:19:07
  • 阅读 ( 1276 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢