`

springboot-第五章 SpringBoot部署war项目到tomcat9和启动原理

 
阅读更多

springboot项目达成war包需要在pom文件中添加<packaging>war</packaging>

 

@SpringBootApplication
//@SpringBootConfiguration
//@EnableAutoConfiguration
//@ComponentScan
public class AutogenprojectApplication extends SpringBootServletInitializer {

   public static void main(String[] args) {
      SpringApplication.run(AutogenprojectApplication.class, args);}
   @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
   {
      return builder.sources(AutogenprojectApplication.class);
   }
}

 

<build>
   <finalName>mySringBoot</finalName>
   <plugins>

 

在pom的build标签中增加finalName标签可以在idea的编译中生成mySpringBoot.war。但是在maven3.2.2中无法识别这个标签,编译后的仍然是 项目名-0.0.1-SNAPSHOT.war

 

SpringBoot2.x的启动原理,下面是SpringApplication.run里面的源码。

 

public ConfigurableApplicationContext run(String... args) {
    StopWatch stopWatch = new StopWatch();是用来监控程序执行情况
    stopWatch.start();
    ConfigurableApplicationContext context = null;
    Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList();
    this.configureHeadlessProperty();
    SpringApplicationRunListeners listeners = this.getRunListeners(args);
    listeners.starting();

    Collection exceptionReporters;
    try {
        ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);
        ConfigurableEnvironment environment = this.prepareEnvironment(listeners, applicationArguments);
        this.configureIgnoreBeanInfo(environment);
        Banner printedBanner = this.printBanner(environment);
        context = this.createApplicationContext();
        exceptionReporters = this.getSpringFactoriesInstances(SpringBootExceptionReporter.class, new Class[]{ConfigurableApplicationContext.class}, context);
        this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);
        this.refreshContext(context);
        this.afterRefresh(context, applicationArguments);
        stopWatch.stop();
        if (this.logStartupInfo) {
            (new StartupInfoLogger(this.mainApplicationClass)).logStarted(this.getApplicationLog(), stopWatch);
        }

        listeners.started(context);
        this.callRunners(context, applicationArguments);
    } catch (Throwable var10) {
        this.handleRunFailure(context, var10, exceptionReporters, listeners);
        throw new IllegalStateException(var10);
    }

    try {
        listeners.running(context);
        return context;
    } catch (Throwable var9) {
        this.handleRunFailure(context, var9, exceptionReporters, (SpringApplicationRunListeners)null);
        throw new IllegalStateException(var9);
    }
}
分享到:
评论

相关推荐

    springboot-mini.zip

    SpringBoot应用可以轻松打包成可执行的JAR或WAR,然后利用Docker进行容器化部署,提高应用的移植性和可维护性。 通过这个"springboot-mini.zip"压缩包,开发者可以快速了解并实践SpringBoot的基本使用,进一步掌握...

    【Springboot开发】资源springboot-plus-v2.7.18.zip

    Spring Boot支持Tomcat、Jetty等内嵌式Web服务器,这样我们无需部署WAR文件,可以直接运行主类启动服务。在"springboot-plus-v2.7.18"项目中,我们可以查看`application.properties`或`application.yml`文件,了解...

    tomcat部署springboot+vue.doc

    在现代Web开发中,SpringBoot和Vue.js的组合...总结,部署SpringBoot+Vue应用到Tomcat涉及后端WAR打包、前端Vue构建、Tomcat配置修改以及处理跨域问题。理解并掌握这些步骤,将有助于你在实际工作中流畅地部署Web应用。

    springboot-web-demo

    8. **应用打包**:SpringBoot 应用可以被打包为可执行的 JAR 或 WAR 文件,内置的 Servlet 容器使得应用可以直接运行,无需外部部署。 9. **健康检查和监控**:SpringBoot 提供了 `/actuator` 端点,用于健康检查、...

    springboot-bucket.zip

    这些子项目可能涵盖了不同的功能模块和应用场景,帮助学习者深入理解 SpringBoot 的核心概念和工作原理。 1. **SpringBoot 核心特性**: - 自动配置:SpringBoot 通过 @EnableAutoConfiguration 注解,自动根据...

    springboot-web.rar

    7. **打包为 WAR**:标签提到“打war包”,这表明项目最终会被打包成 WAR 文件,这种格式的文件适合部署在传统的 Java EE 服务器如 Tomcat 上。SpringBoot 默认生成的是可执行的 JAR 包,但如果需要部署到外部应用...

    springboot-最全的入门教程&源码.zip

    学习这个压缩包,你需要先按照《java项目本地环境搭建手册.pdf》的步骤设置好开发环境,然后导入 springboot-example-master 项目到你的 IDE 中,逐步理解和修改代码,实践 Spring Boot 的各项功能。同时,可以结合 ...

    springboot-demo

    3. **内嵌Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,这样我们无需额外部署,可以直接运行打包后的JAR或WAR文件。 4. **Actuator**:这是一个监控和管理Spring Boot应用的工具,提供了...

    SpringBoot-1.5.7_入门要点图示.pdf

    1. **部署方式**:SpringBoot支持多种部署方式,包括通过Jar文件运行和通过War文件部署到外部Servlet容器。默认情况下,SpringBoot应用被打包成一个包含内嵌Servlet容器的Jar文件,可以通过`java -jar`命令来运行。 ...

    Springboot-mybatis-thymeleaf.7z

    - 内嵌式容器:Spring Boot 支持内嵌 Tomcat 或 Jetty,无需额外打包成 war 文件部署。 - Actuator:提供了健康检查、审计、指标、日志等监控和管理工具。 2. **Mybatis** - 映射器:Mybatis 通过 XML 或注解...

    springboot-hello

    在这个名为 "springboot-hello" 的项目中,我们可以看到一个基础的 Spring Boot 应用实例,用于学习和实践。 在描述中提到的 "访问" 暗示了这是一个具有 Web 功能的示例。Spring Boot 提供了对 Spring MVC 的集成,...

    springboot入门示例可运行在tomcat6容器

    在本示例中,我们将探讨如何将一个简单的SpringBoot应用部署到较旧版本的Tomcat6容器中。 1. **SpringBoot核心特性** - **自动配置**:SpringBoot会根据项目依赖自动配置相应的Bean,如添加了JPA依赖,它会自动...

    springboot-毕业生信息招聘平台答辩PPT.pptx

    2. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat或Jetty,无需部署WAR文件到外部服务器。 3. **简化Maven配置**:提供起步依赖(Starters),方便集成各种服务,减少在pom.xml中的配置。 4. **自动配置Spring*...

    springboot整合CXF发布webservice和客户端调用

    SpringBoot简化了Spring应用程序的初始设置和配置,通过自动配置和“起步依赖”(Starter POMs)使开发者可以快速启动项目。它内嵌了Tomcat或Jetty服务器,使得部署无需额外的容器。 2. **Apache CXF简介** ...

    springboot-helloworld:测试

    JAR 文件可以直接运行,而 WAR 文件可部署到外部的 Servlet 容器,如 Tomcat 或 Jetty。 总的来说,"springboot-helloworld" 是一个很好的起点,帮助开发者熟悉 SpringBoot 的基本操作和工作流程。通过这个项目,你...

    springboot 项目源码

    3. **内嵌式 Servlet 容器**:SpringBoot 默认使用 Tomcat 作为内嵌式 Web 服务器,无需额外打包成 war 文件部署,大大简化了开发流程。 4. **YAML/Properties 配置**:SpringBoot 支持 YAML 和 Properties 格式的...

    lib-management-system=springboot+html图书管理

    部署方面,SpringBoot的应用可以直接以jar或war包的形式部署到服务器,如Apache Tomcat,或者使用Docker进行容器化部署。 8. **日志与监控** 为了便于系统监控和问题排查,SpringBoot集成了Logback或Log4j等日志...

    springboot-2-java-11

    - 使用`mvn spring-boot:run`或Gradle的相应命令启动应用,或者构建可执行的JAR或WAR文件进行部署。 - Docker容器化也是常见的部署方式,可以创建Dockerfile来打包应用。 7. **学习与进阶** - 学习Spring Boot...

    Springboot入门课件.pptx

    【SpringBoot入门课件】...通过这些基础知识,开发者能够快速理解SpringBoot的核心理念,并能动手在Idea中创建和运行第一个SpringBoot项目。学习SpringBoot不仅能够提高开发效率,还能为构建微服务架构打下坚实基础。

    springboot整合dubbo+zookeeper案例

    通过这个案例,你可以学习到如何在SpringBoot环境中构建和管理基于Dubbo的服务,以及如何利用Zookeeper进行服务注册和发现。同时,掌握Tomcat的部署和管理也是一项重要的技能。理解这些技术的原理和实践,将有助于你...

Global site tag (gtag.js) - Google Analytics