ssm和springboot项目运行与部署

java项目可以打成jar包或者war包,以前SSM前后端不分离的项目,一般都是打成war包,现在前后端分离springboot项目,一般都是打成jar包,当然前后端分离springboot项目打成war包也可以。

总结:

  • ssm项目
    • 前后端分离:打war包部署到Tomcat等容器中。(因为没有内置tomcat)
    • 前后端不分离:打war包部署到Tomcat等容器中(因为没有内置tomcat)
  • springboot项目
    • 前后端分离:打jar包和war包都行,现在都是打jar包(打war包的话需要做配置,去掉springboot内置的tomcat等)
    • 前后端不分离:打jar包和war包都行,现在都是打jar包,打jar需要做配置因为静态资源在后端(打war包需要去掉springboot内置的tomcat等)

1. SpringBoot 项目

1.1 SpringBoot项目在 IDEA运行

Application 右击run即可。

1.2 SpringBoot 项目的部署

部署 Spring Boot 项目可以采用多种方式,下面是常用的几种部署方式,同学们可以简单做一个了解。

  • JAR包部署:将Spring Boot项目打包成一个可执行的JAR文件,通过命令行或者脚本执行该JAR文件即可运行项目。这种方式简单方便,适合单机部署。

  • WAR包部署:将Spring Boot项目打包成WAR文件,可以部署到支持Java Web容器的服务器,比如Tomcat、Jetty等。这种方式可以结合容器的优势,实现多实例部署和负载均衡。

  • Docker容器部署:使用Docker容器技术将Spring Boot项目打包成镜像,然后在Docker环境中运行。这种方式可以实现快速部署、环境隔离和弹性伸缩。

  • 云平台部署:将Spring Boot项目部署到云平台,云平台提供了强大的计算和存储资源,可以方便地进行扩展和管理。

  • 容器编排部署:使用容器编排工具,比如Kubernetes、Docker Compose等,将Spring Boot项目部署到多个容器中,并进行自动化管理和扩展。

但在部署Spring Boot项目时,还需要考虑以下几个方面,同学们一定要注意。

  • 环境配置:根据项目需要,配置相应的数据库、缓存、消息队列等依赖组件,并确保配置正确。

  • 日志管理:配置合适的日志框架,将日志输出到文件或者日志收集系统中,方便查看和分析。

  • 安全管理:根据项目需求,配置适当的安全措施,比如身份认证、授权等,保护系统安全。

  • 监控和调优:配置合适的监控工具,监控系统的运行状态和性能指标,及时发现和解决问题。

无论采用哪种部署方式,都需要确保项目的可靠性、高可用性和性能,根据具体的需求和场景,选择适合的部署方式和相关工具。

对于大多数开发者来说,打Jar包和War包是最常用的选择,接下来将重点讲解。

1.3 Spring Boot 项目如何打 Jar 包

Spring Boot项目通常打包成一个可执行的JAR文件,这个文件可以直接在命令行中通过java -jar命令运行。
如果你选择了JAR方式部署,那么你只需要构建一个可执行的JAR,并通过java -jar命令来运行你的应用。这是Spring Boot推荐的方式,因为它内嵌了Tomcat、Jetty或Undertow等容器,无需额外的Servlet容器。
你需要确保你的项目中包含了Spring Boot的主类,并且在该类上使用了@SpringBootApplication注解。以下是一个简单的Spring Boot主类示例:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在pom.xml中,确保你的打包方式是jar:

<packaging>jar</packaging>

并且添加Spring Boot Maven插件:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

使用Maven打包:

mvn clean package

这样就会生成一个可执行的JAR文件,你可以通过以下命令运行:

java -jar yourapp.jar

1.4 Spring Boot 项目如何打 War 包

Spring Boot 项目默认打包为 JAR 文件,但也可以配置为打包成 WAR 文件。如果你需要部署到Tomcat等Servlet容器中,或者需要生成WAR文件以方便部署到如Jetty、Undertow等非Servlet容器的Web应用服务器中,你可以使用Spring Boot Maven插件或Gradle插件来生成WAR文件。

以下是使用Maven生成WAR文件的步骤:

1.在pom.xml中添加Spring Boot Maven插件并指定打包方式为war:

<packaging>war</packaging>
...<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

2.移除内嵌的Tomcat依赖,因为WAR文件将被部署到外部容器中,添加内嵌Tomcat的starter 范围为provided,因为idea运行时需要,而打包不需要 :

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><!-- scope 各配置简单介绍1.test范围是指测试范围有效,在编译和打包时都不会使用这个依赖2.compile范围是指编译范围内有效,在编译和打包时都会将依赖存储进去3.provided依赖,在编译和测试过程中有效,最后生成的war包时不会加入 例如:servlet-api,因为servlet-api在tomcat服务器已经存在了,如果再打包会冲突4.runtime在运行时候依赖,在编译时候不依赖5.system表示此依赖来自于外部jar, 而不是maven仓库如果引入依赖未指定,默认依赖范围是compile--><scope>provided</scope></dependency>

3.确保你的Application类继承自SpringBootServletInitializer并重写configure方法:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;@SpringBootApplication
public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

4.使用Maven的package命令构建WAR文件:

mvn package

构建完成后,你会在target目录下找到*.war文件,此时将War包放入到Tomcat的webapps目录下启动Tomcat即可,tomcat会自动解压war包。

WAR文件的打包方式适用于传统的JavaWeb项目部署,需要将WAR文件部署到独立的容器中。如果是使用Spring Boot内嵌的Tomcat运行项目,则通常使用JAR包方式进行部署。

1.5 Spring Boot项目打Jar包和War包的区别

Spring Boot项目可以打包成 Jar 包或 War 包,其区别主要在于部署和运行方式。

Jar包(可执行的独立JAR)

  • 打包方式:通过Spring Boot插件将项目及其依赖打包成一个可执行的独立JAR文件。
  • 部署方式:直接使用java -jar命令运行Jar包即可,不需要额外的Web容器支持。
  • 运行方式:内嵌了Servlet容器(如Tomcat、Jetty等),可以直接通过启动Jar包来运行Spring Boot应用。
  • 适用场景:适合于开发独立的、自包含的、无需依赖外部容器的应用,例如简单的RESTful服务、批处理任务等。

War包(Web应用归档)

  • 打包方式:将项目及其依赖打包成一个标准的War文件。
  • 部署方式:需要将War包部署到外部的Servlet容器(如Tomcat、Jetty等)中运行。
  • 运行方式:依赖外部Servlet容器的支持,通过启动容器来运行Spring Boot应用。
  • 适用场景:适合于传统的Web应用,需要与其他JavaEE应用(如Servlet、JSP等)共同运行的场景。

总的来说,Jar包适合于独立运行的Spring Boot应用,而War包适合于与其他 JavaEE 应用共同运行的场景,选择哪种打包方式,可以根据具体的应用需求和部署环境来决定。

2. SSM 项目

2.1 SSM 项目在IDEA运行

配置tomcat
🌊右上角会有Current File,点击此处!
在这里插入图片描述
🌊选择Tomcat Server Local
在这里插入图片描述
🌊配置Tomcat目录
在这里插入图片描述
🌊找到自己本地Tomcat目录导入就行
在这里插入图片描述
🌊先点击Deployment,在点击Artifact把war引入到tomcat
在这里插入图片描述
修改Application context的路径为/
在这里插入图片描述
运行项目
正常项目环境搭建完成,右上角会有绿色三角形图标,点击此处即运行!
在这里插入图片描述
启动后自动跳转出页面。

2.2 SSM 项目如何打 War 包

2.2.1 确保你的项目结构正确:

  • 你的项目应该是一个Maven,这样你可以很容易地管理依赖和构建WAR文件。
  • 确保你的src/main/webapp目录存在,并且包含你的Web资源,如WEB-INF/web.xml、WEB-INF/lib(存放依赖的JAR文件)等。

2.2.2 修改pom.xml文件(对于Maven项目):

如果你使用的是Maven,你需要在pom.xml文件中添加或修改以下配置,以确保项目可以打包成WAR文件:

<packaging>war</packaging><build><finalName>你的项目名称</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.3.1</version><configuration><warSourceDirectory>WebContent</warSourceDirectory><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins>
</build>`

这里的标签定义了生成的WAR文件的名称。
如果你的Web资源不在WebContent目录下,你需要修改标签的值。

2.2.3 执行打包命令:

对于Maven项目,在命令行中进入项目根目录,并执行以下命令:

mvn clean package

打包完成后,你应该可以在target(对于Maven)目录下看到生成的WAR文件。

2.2.4 部署WAR文件:

  • 将生成的WAR文件部署到你选择的Web服务器或应用服务器,如Tomcat、Jetty等。
  • 不同的服务器有不同的部署方式,但通常你只需将WAR文件复制到服务器的webapps目录下,然后服务器会自动解压并启动它。

注意:确保你的项目中所有的依赖都已经被正确地解析并包含在WEB-INF/lib目录下。如果有任何缺失的依赖,可能会导致WAR文件在服务器上运行时出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/314113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细解析什么是期权交易的获利方法

期权交易的获利方法 在期权交易之前进行充分的准备工作和风险评估是至关重要的。其中行情结构、策略方法、预期收益和风险评估&#xff0c;是期权交易成功的关键要素。它们能帮助我们更好地制定交易计划&#xff0c;控制风险&#xff0c;并追求稳定的利润。以下是对这四点的详…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术&#xff08;multi-tenancy technology&#xff09;是一种软件架构技术&#xff0c;它允许在单个系统实例上为多个用户或组织提供服务&#xff0c;同时确保这些用户之间数据的隔离性。在多租户架构中&#xff0c;每个租户&#xff08;可以是个人用户、企业、组…

Golang | Leetcode Golang题解之第46题全排列

题目&#xff1a; 题解&#xff1a; func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

LM1875L-TB5-T 音频功率放大器 PDF中文资料_参数_引脚图

LM1875L-TB5-T 规格信息&#xff1a; 商品类型音频功率放大器 音频功率放大器的类型- 输出类型1-Channel (Mono) 作业电压16V ~ 60V 输出功率25W x 1 4Ω 额外特性过流保护,热保护 UTC LM1875是一款单片功率放大器&#xff0c;可为消费类音频应 用提供极低失真和高品质的…

Linux用户与权限

切换账户 su su [-] [用户名]- 可选&#xff0c;表示在切换用户后加载环境变量&#xff0c;一般都使用 用户名 可选&#xff0c;省略表示切换到root切换用户后&#xff0c;可以使用exit命令退回上一用户&#xff0c;或用快捷键ctrld 为普通命令授权 sudo sudo命令&#xff1a;…

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分&#xff1a;1.3链表的优缺点&#xff1a; 二、链表典例力扣707.设计链表难点分析&#xff1a;&#xff08;1&#xff09;MyLinkedList成员变量的确定&#xff1a;&#xff08;2&#xff09;初始化自定义链表&#xff1a;&…

RIP最短路实验(华为)

思科设备参考&#xff1a;RIP最短路实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;工作原理是每个路由器周期性地向邻居路由器发…

对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控+AMG(AWS云 grafana)

问题 需要在针对已有的EKS k8s集群启用Prometheus指标监控。而且&#xff0c;这里使用AMP即AWS云的Prometheus托管服务。好像这个服务&#xff0c;只有AWS国际云才有&#xff0c;AWS中国云没得这个托管服务。下面&#xff0c;我们就来尝试在已有的EKS集群上面启用AMP监控。 步…

vue 脚手架创建

脚手架创建 介绍 脚手架是什么呢&#xff0c;就是vue自动创建脚手架的项目模板&#xff0c;用于搭建项目的整体骨架&#xff0c;就比如后端开发时&#xff0c;咱们可以创建一个空项目&#xff0c;一步步创建为mvc项目&#xff0c;但是vs封装了mvc的框架&#xff0c;我们可以直…

[C++][算法基础]求组合数(I)

给定 &#x1d45b; 组询问&#xff0c;每组询问给定两个整数 &#x1d44e;&#xff0c;&#x1d44f;&#xff0c;请你输出 的值。 输入格式 第一行包含整数 &#x1d45b;。 接下来 &#x1d45b; 行&#xff0c;每行包含一组 &#x1d44e; 和 &#x1d44f;。 输出格…

VMware17Pro虚拟机安装macOS教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装补丁4.1 解压补丁4.2 结束VMware相关进程4.3 运行补丁包 5. 安装macOS5.1 新建虚拟机5.2 修改虚拟机配置5.3 安装操作系统5.3.1 选择 ISO 映像文件5.3.2 开启虚拟机5.2.…

07 流量回放实现自动化回归测试

在本模块的前四讲里&#xff0c;我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构&#xff0c;包含懒加载缓存、全量缓存&#xff0c;以及数据同步等方案的技术细节。 基于上述方案及细节&#xff0c;你可以直接对你所负责的读服务进行架构升级&#xff0c;将…

江苏开放大学2024年春《会计基础 050266》第二次任务:第二次过程性考核参考答案

电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&#xff0c;包含国家开放大学、广东开放大学、超星等等多个平台题库&#xff0c;考试作业必备神器。 公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#…

数据结构-二叉树-堆(二)

一、建堆的时间复杂度问题 1、除了向上调整建堆&#xff0c;我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走&#xff0c;可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…

C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码

C#开发的全套成熟的LIS系统源码JavaScriptSQLserver 2012区域云LIS系统源码 医院云LIS系统是一套成熟的实验室信息管理系统&#xff0c;目前已在多家三级级医院应用&#xff0c;并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标…

Godot3D学习笔记1——界面布局简介

创建完成项目之后可以看到如下界面&#xff1a; Godot引擎也是场景式编程&#xff0c;这里的一个场景相当于一个关卡。 这里我们点击左侧“3D场景”按钮创建一个3D场景&#xff0c;现在在中间的画面中会出现一个球。在左侧节点视图中选中“Node3D”&#xff0c;右键创建子节点…

Python打怪升级(4)

在计算机领域常常有说"合法"和"非法"指的是:是否合理&#xff0c;是否有效&#xff0c;并不是指触犯了法律。 random.randint(begin,end) 详细讲解一下这个random是指模板&#xff0c;也就是别人写好的代码直接来用&#xff0c;在Python当中&#xff0c;…

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力

探索和构建 LLaMA 3 架构&#xff1a;深入探讨组件、编码和推理技术&#xff08;四&#xff09;分组多查询注意力 Grouped-query Attention&#xff0c;简称GQA 分组查询注意力&#xff08;Grouped-query Attention&#xff0c;简称GQA&#xff09;是多查询和多头注意力的插值…

grafana报错This panel requires Angular (deprecated)

1.原因 报错解释&#xff1a; Grafana在更新到7.0版本后&#xff0c;弃用了AngularJS&#xff08;一种用于构建大型Web应用的JavaScript框架&#xff09;。在早期的Grafana版本中&#xff0c;某些面板可能依赖于AngularJS&#xff0c;但这种依赖已经逐步被新的React或Vue面板所…

【软考经验分享】软考-中级-嵌入式备考

这里写目录标题 教辅用书嵌入式系统设计师考试大纲嵌入式系统设计师教程嵌入式系统设计师5天修炼嵌入式系统设计师考前冲刺100题 刷题软件希赛网软考真题 视频教程希赛网王道-计组计网 教辅用书 嵌入式系统设计师考试大纲 50页左右&#xff0c;内容为罗列一些考点&#xff0c…