hualinux springMVC 5.11:使用springBoot 进行springMVC开发[war方式]

本文详细介绍如何使用SpringBoot进行MVC开发,包括环境搭建、项目创建、代码编写及测试,最后演示如何将项目打包并部署到生产环境的Tomcat服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、环境说明

二、建立spring Boot项目

三、编写代码

3.1 编写Hello代码

3.2 测试

3.2.1 添加tomcat配置

3.2.2 运行tomcat测试一下效果

四、打包成war发送到生产环境的tomcat上

4.1 idea生成war包

4.2 配置线上环境tomcat虚拟主机并访问

4.2.1 上传war文件

4.2.2 配置tomcat虚拟主机

4.2.3 测试


在实际应用中进行springMVC开发,一般使用springBoot,这样才能省很多事,之前我在《hualinux spring 4.21:使用SpringBoot进行spring开发》对springBoot配置简单做了说明,springBoot与spring的不同,这里我不再赘述,最多在这个基础上直接说下有什么不同而已。

用SpringBoot进行SpringMVC开发,有两种,一种是内嵌web,Spring Boot 支持的内嵌容器有 Tomcat(默认) 、Jetty 、Undertow 和 Reactor Netty (v2.0+), 借助可插拔 (SPI) 机制的实现,开发者可以轻松进行容器间的切换。

 一种是外置的,我这里使用外置的,因为如果内嵌的话,一台机子你跑多个web,就不能使用同一端口号,如果非要使用,那么就得在前面加一个代理,如用nginx做反代。

 

一、环境说明

软件名

版本

安装方式

备注

idea

2020.1

exe

目前最新版本idea为2020.1.2

JDK

14.0.1

exe

目前oracle最新版本的jdk

tomcat

9.0.36

无需要安装

下载的是windows-x64.zip不用安装直接在idea配置即可

Maven

3.6.3

Idea自带

使用idea自带的maven就够了,目前最新稳定版

springBoot

2.3.1

Idea下载

目前最新稳定版本

         spring boot直接通过idea下载,省去安装的麻烦。

二、建立spring Boot项目

如果你之前有建立过项目的话,先关闭项目“File-->Close Project”

下面这些是什么意思,我在《hualinux spring 4.21:使用SpringBoot进行spring开发》已经进行了讲解了,我这里不讲了,有兴趣可以看一下这篇文章

最终界面为:

这样就完成了,简单吧~~

用springBoot建立后项目之后,是兼职spring和springMVC的注解的,所以一样可以使用

为了方便,还是得像《hualinux spring 4.21:使用SpringBoot进行spring开发》那样,在pom.xml添加一个配置处理器

提高编写配置文件的速度,少记一些配置文件,所以推荐安装配置启动器configuration-processor,这样当你写配置的时候,会弹出配置提示,配置处理器启动器可以去maven官网仓库搜索 configuration-processor,版本与springBoot版本要一致

如:我的是springBoot 2.3.1 ,所以添加pom.xml配置依赖为:

        <!--  文件处理器,以后编写配置就有提示了  -->
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.3.1.RELEASE</version>
        </dependency>

 

三、编写代码

3.1 编写Hello代码

在src/main/java/com.hualinux.myspringbootmvc/下建立一个test.Hello.java类

test.HelloWorld如果前面有.则表示是目录,即在com.hualinux.myspringbootmvc下方建立一个test目录,目录下再建立一个Hello的java类。

代码如下:跟springMVC一样的写法

package com.hualinux.myspringbootmvc.test;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


//@Controller表示要使用模板,如果用@RestController则表示直接把数据返回给浏览器
@RestController
public class Hello {

    @RequestMapping("/hello")
    public String sayHi(){
        return "你好,springBootMVC";
    }

}

什么都不用配置,直接运行试下

看一下idea最下方

打开浏览器输入,我刚刚配置好的路由映射,因为主页没配置,打开报错属于正常

http://127.0.0.1:8080/hello看一下效果

正确之后,我们按暂停一下

为什么不用添加外部tomcat就能直接运行了呢,因为pom.xml添加了一个tomcat依赖了

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

3.2 测试

3.2.1 添加tomcat配置

因为我们使用的是war包,所以不会使用spring boot自动带的tomcat,这样我们主需要配置一个tomcat

VM options 项中添加:-Dfile.encoding=UTF-8  防止idea最下方日志控制台输出乱码

在这里需要说一下:选择war还是war exploded的问题,首先看一下他们两个的区别:

war模式:将web工程以war包的形式上传到服务器 
war exploed模式:将web工程以当前文件夹的位置关系上传到服务器

  • war模式这种可以称之为是发布模式,看名字也知道,这是先打包war包,再发布;
  • war exploded模式是直接把文件夹,jsp页面,classes等等移到Tomcat部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
  • 在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来 

修改红框的位置就可以实现热部署,但是如果修改了java源码还是得重启tomcat才能生效的

3.2.2 运行tomcat测试一下效果

点工具栏上 运行一下tomcat

会自动弹出一个浏览器窗口,网址变成了

http://localhost:8080/myspringbootmvc_war_exploded/,因为这里我tomcat的URL配置就是这样的,是idea自动生成的

它生成的URL格式为:

http://localhost:8080/<group>_<artifact>,拼成的,这个就变成了tomcat的根目录

为了方便,我把hello的映射变成根目录

    @RequestMapping("/")
    public String sayHi(){
        return "你好,springBootMVC";
    }

 

四、打包成war发送到生产环境的tomcat上

本地测试没有问题了,我们需要打包成war放到生产环境了,为了方便生产环境安装了tomcat,

其它默认

4.1 idea生成war包

这里我们使用idea自带的maven命令,分别双击:clean/package(clean为清除,package为打包),如下图所示:

ps:如果是第一次运行的话,其实可以不用clean,clean主要是清除之前生成的

4.2 配置线上环境tomcat虚拟主机并访问

你安装用centos8安装了一个nginx+mysql8.0+tocmat9.0的环境,见《centOS8安装LNMT

tomcat的网站目录为:/disk1/www/hualinux.com

tomcat二进制所在目录为:/disk1/app/tomcat/

4.2.1 上传war文件

上传上图中idea的“myspringbootmvc-0.0.1-SNAPSHOT”文件并重命名为demo.war,并把它上到/disk1/www/hualinux.com目录下

4.2.2 配置tomcat虚拟主机

配置线上环境的tomcat虚拟主机,这里为了方便我用IP访问,没有配置域名

我就直接修改上面已经配置好的/disk1/app/tomcat/conf/Catalina/localhost/ROOT.xml

#只是添加红色部分,指定一下war的位置

<Context path="" docBase="/disk1/www/hualinux.com/demo.war" debug="0" reloadable="false" crossContext="true">

</Context>

#重启tomcat

systemctl stop tomcat
systemctl start tomcat

我们知道如果是war包的话会解压到appBase指定的目录中,默认为webapps,我没有进行修改,原来webapps/ROOT是放tomcat目录的,看一下是否变化,如果变化了则成功了

4.2.3 测试

配置好线上tomcat,重启tomcat后,现在访问测试一下效果,打开浏览器输入

http://192.168.3.81:8080/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值