• 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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    <packaging>jarpackaging>
    
    • 1

    并且添加Spring Boot Maven插件:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用Maven打包:

    mvn clean package
    
    • 1

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

    java -jar yourapp.jar
    
    • 1

    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>warpackaging>
    ...
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-tomcatartifactId>
            exclusion>
        exclusions>
    dependency>
     <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
            
            <scope>providedscope>
     dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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 {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    mvn package
    
    • 1

    构建完成后,你会在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>warpackaging>
    
    <build>
        <finalName>你的项目名称finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-war-pluginartifactId>
                <version>3.3.1version>
                <configuration>
                    <warSourceDirectory>WebContentwarSourceDirectory>
                    <failOnMissingWebXml>falsefailOnMissingWebXml>
                configuration>
            plugin>
        plugins>
    build>`
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    2.2.3 执行打包命令:

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

    mvn clean package
    
    • 1

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

    2.2.4 部署WAR文件:

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

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

  • 相关阅读:
    【面试题 - mysql】事务
    多个git提交,只推送其中一个到远程该如何处理
    OSPF高级配置——NSSA区域与地址汇总
    vector 模拟与用法
    Spring的事务机制
    视频讲解|3014 含分布式电源的配电网优化重构
    网络安全原理与实践学习笔记——设计DMZ
    图解LeetCode——1678. 设计 Goal 解析器(难度:简单)
    Makefile--自动识别编译环境(x86还是arm)进行编译
    onps栈移植说明(2)——编译器及os适配层移植
  • 原文地址:https://blog.csdn.net/qq_41428418/article/details/137960143