首页 > 其他分享 >【Spring-boot】项目部署到tomcat容器中

【Spring-boot】项目部署到tomcat容器中

时间:2024-10-27 20:52:18浏览次数:8  
标签:容器 SpringBoot tomcat Spring boot 应用程序 Servlet configure

一、pom.xml文件配置

1.1 在pom.xml里设置

 <packaging>war</packaging>

1.2 移除嵌入式tomcat插件

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

或在starter-web中排除

<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>

 1.3 添加war包依赖以设置名称

<build>
        <!--war包名称-->
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!--对项目打war包依赖-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
 
        </plugins>
    </build>

二、配置 SpringBoot 启动类

2.1 继承SpringBootServletInitializer类,重写configure方法

@SpringBootApplication(scanBasePackages = "com.hdro")
@EnableTransactionManagement //事务
public class HdxxcjProApplication extends SpringBootServletInitializer {
 
    public static void main(String[] args) {
        SpringApplication.run(HdxxcjProApplication.class, args);
    }
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(HdxxcjProApplication.class);
    }
}
  1. Servlet 容器加载机制:在 Java Web 开发中,Servlet 容器负责加载和管理 Servlet。Servlet 容器会在启动时读取 web.xml 文件(或者使用 Servlet 3.0 注解)来获取应用程序的配置信息,并加载相应的 Servlet。对于 SpringBoot 应用程序来说,它也是一个 Servlet,需要被加载到 Servlet 容器中才能运行。
  2. SpringBoot 启动类:SpringBoot 应用程序通常有一个主类,其中包含 main 方法。这个主类使用 SpringBoot 的 @SpringBootApplication 注解标记,它告诉 SpringBoot 应用程序的入口点。在内嵌 Tomcat 的情况下, SpringBoot 会自动检测并启动应用程序,而在外部 Tomcat 中,我们需要告诉 Tomcat 如何加载 SpringBoot 应用程序。
  3. SpringBootServletInitializer 作用:SpringBootServletInitializer 是 SpringBoot 提供的一个抽象类,用于支持将 SpringBoot 应用程序部署到外部 Servlet 容器中。通过继承 SpringBootServletInitializer 类并重写其 configure 方法,我们可以告诉外部 Servlet 容器如何初始化 SpringBoot 应用程序,并指定 SpringBoot 应用程序的主类。
  4. configure 方法重写:在 configure 方法中,我们需要调用 SpringApplicationBuilder 的 sources 方法并传递 SpringBoot 应用程序的主类,以告诉外部 Servlet 容器从哪里加载 SpringBoot 应用程序。SpringBoot 会在部署到外部 Servlet 容器时自动检测到这个 configure 方法,并使用它来初始化应用程序。

2.2 执行 mvn clean package 命令完成打包 

mvn clean package

2.3 war部署到Tomcat

将war包放到tomcat->webapps中,并配置项目访问路径(conf->server.xml文件中)

<Context path="/xaxxcj" docBase="xaxxcj" reloadable="true" debug="0">  

 

2.4 启动Tomcat

启动项目 bin->startup.bat 

标签:容器,SpringBoot,tomcat,Spring,boot,应用程序,Servlet,configure
From: https://blog.csdn.net/zhyooo123/article/details/143265192

相关文章

  • 【SpringBoot】一张图看懂初始化阶段-refreshContext
    springboot的启动分为两部分,一部分是注解,一部分是SpringApplication.run(Springboot.class,args),那么我们的注解又是如何嵌入到程序中呢?靠的就是refreshContext方法,同理,我们跟踪源码进入refreshContext方法@Override publicvoidrefresh()throwsBeansException,Illega......
  • Springboot 自动配置原理
    1.在SpringBoot项目中的引导类上有一个复合注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是:@SpringBootConfiguration 用于定义Bean和配置Spring容器。@EnableAutoConfiguration 实现自动化配置的核心注解@ComponentScan 扫描包里的组件2.其中......
  • Spring常见注解
    1.Spring常见注解@Component、@Controller、@Service、@Repository使用在类上用于实例化Bean@Autowired使用在字段上用于根据类型依赖注入@Qualifier结合@Autowired一起使用用于根据名称进行依赖注入@Scope标注Bean的作用范围@Configuration指定当前类是一个Spring配置类......
  • springboot使用ai
    springboot下载ai的pom比如:想使用本地ollama(报错:依赖找不到)解决:<!--因为maven暂时下载不了SpringAIOllama依赖,引用Spring快照依赖包--><repositories><repository><id>central</id><url>https://repo.maven.apache.org......
  • 单片机中的BootLoader(使用汇编指令进行跳转)
    文章目录一、APP中使用中断向量表二、使用汇编进行跳转1.**直接控制硬件资源**2.**优化性能**3.**灵活性**4.**清晰的函数调用约定**5.**与C代码的协同**代码示例中的汇编部分分析总结三、重定向向量表一、APP中使用中断向量表改进上一篇......
  • SpringBoot整合API接口做快递智能识别
    目录第一步阿里云订阅快递服务第二步整合springBoot将接口调通原有的代码改造后的代码第三步对接前端进行渲染效果后台 controller servie serviceImpl前台template部分script部分style部分最终效果第一步阿里云订阅快递服务登录以后点击云市场找到对应......
  • [笔记] SpringBoot3 使用 EasyExcel 封装工具类实现 自定义表头 导出并实现 数据格式
    在现代企业应用中,数据导出功能是非常常见的需求。特别是在处理大量数据时,将数据导出为Excel文件不仅方便用户查看和分析,还能提高数据处理的效率。ApachePOI是一个常用的JavaExcel处理库,但它在处理大数据量时性能较差。为此,阿里巴巴开源了EasyExcel,这是一个基于Java......
  • 基于springboot电商个性化推荐系统设计与实现
    前言伴随着我国社会的发展,人民生活质量日益提高。于是对电商个性化推荐进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套电商个性化推荐系统,帮助商家进行商品信息、在线沟通等繁琐又......
  • 基于springboot大学生志愿者管理系统设计与实现
    前言系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对大学生志愿者管理的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想,在大学生志愿者管理系统......
  • 基于springboot导师选择管理系统设计与实现
    前言伴随着我国社会的发展,人民生活质量日益提高。于是对导师选择管理进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套导师选择管理系统,帮助学校进行导师选择管理等繁琐又重复的工作......