springboot使用外置tomcat启动方式

下面是关于“springboot使用外置tomcat启动方式”的完整攻略。

1. 准备工作

在开始使用外置tomcat启动SpringBoot应用之前,需要先进行一些准备工作。

1.1 确认Tomcat版本

确保Tomcat版本符合SpringBoot版本要求。可以通过SpringBoot官方文档中的 Supported Application Servers 查看具体的版本要求。

1.2 修改maven依赖

pom.xml文件中,将<packaging>jar</packaging>改为<packaging>war</packaging>,并添加<scope>provided</scope>以排除内置tomcat的依赖。具体的代码如下:

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

1.3 配置SpringBoot的servletInitializer

org.springframework.boot.context.web.SpringBootServletInitializer是一个支持外部容器部署的SpringBoot支持类,需要在应用的入口类(通常是一个用于启动应用的main方法所在的类)上继承该类。例如:

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

2. 打包可部署的war文件

执行mvn clean package命令,生成可部署的war文件,该文件默认位于target目录下。

3. 部署war文件到外置Tomcat

将生成的war文件拷贝到外置tomcat的webapps目录下,并启动tomcat。之后访问 http://localhost:8080/MyApplication/ 即可访问应用。

示例一

以下是一个控制器,用于处理在浏览器中访问 /greeting 命令时返回一条问候语。在控制器类上加上注解@RestController即可将其转换为web控制器类。

@RestController
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting() {
        return "Hello World!";
    }
}

执行mvn clean package命令生成war包,将其拷贝到外置Tomcat的webapps目录下,并启动Tomcat,访问 http://localhost:8080/MyApplication/greeting 即可看到页面上输出“Hello World!”的信息。

示例二

以下是一个使用JDBC连接数据库的示例,需要在pom.xml中添加mysql驱动的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
</dependency>

修改application.properties文件中的数据库相关配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

创建一个包含数据操作的服务类:

@Service
public class UserService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<Map<String,Object>> getUsers() {
        String sql = "select * from user";
        return jdbcTemplate.queryForList(sql);
    }
}

创建一个web控制器类,用于向页面返回获取到的数据:

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<Map<String,Object>> getUsers() {
        return userService.getUsers();
    }
}

如果没有异常抛出,执行mvn clean package命令,生成war文件,将其拷贝到外置Tomcat的webapps目录下,启动Tomcat,即可访问 http://localhost:8080/MyApplication/users,看到从数据库中获取到的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot使用外置tomcat启动方式 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 使用springboot不自动初始化数据库连接池

    使用SpringBoot不自动初始化数据库连接池需要进行以下步骤: 禁用SpringBoot的数据源自动配置 在项目的配置文件(application.properties或application.yml)中,添加如下配置: spring.datasource.auto-configured=false spring.autoconfigure.exclud…

    Java 2023年5月20日
    00
  • Java中关于文件路径读取问题的分析

    下面是关于Java中文件路径读取问题的分析攻略,包括常见问题及解决办法。 问题描述 在Java程序中,读取文件时常会遇到文件路径问题。文件可能位于磁盘的不同位置,如何正确地指定文件路径是很重要的。 解决方法 在解决文件路径问题之前,先了解一下文件路径的分类。 绝对路径与相对路径 绝对路径:从磁盘根目录开始的路径,如 Windows 中的 C:\Users\z…

    Java 2023年5月19日
    00
  • JavaScript BASE64算法实现(完美解决中文乱码)

    下面详细讲解一下JavaScript BASE64算法实现的攻略。 什么是BASE64算法 BASE64是一种将二进制数据编码成 ASCII 字符串的算法。它主要用于在字符集不兼容的情况下,将文本数据通过电子邮件传输,或者在需要保留文本格式的情况下,将二进制数据嵌入到文本文件中。 JavaScript实现BASE64算法 下面是一个JavaScript BA…

    Java 2023年5月20日
    00
  • 基于springboot实现数据可视化的示例代码

    下面是基于Spring Boot实现数据可视化的完整攻略。 一、准备工作 首先确保你已经安装了Java JDK和Spring Boot,可以通过官网下载并安装。 接着,需要选择一个可视化工具,推荐使用Echarts图表库,因为Echarts是目前最流行的数据可视化工具之一,且可以很方便的与Spring Boot集成。 最后,我们需要一些待可视化的数据,以便进…

    Java 2023年5月20日
    00
  • extjs 学习笔记 四 带分页的grid

    下面是针对“EXTJS 学习笔记 四 —— 带分页的 Grid”这篇文章的详细攻略。 1. 文章概览 该篇文章主要是介绍如何使用 EXTJS 构建具有分页功能的 Grid 表格。其中,主要介绍以下内容: 引入必要的资源文件 创建分页工具栏 构建 Grid 表格 设置 Grid 表格分页参数 2. 引入必要的资源文件 在使用 EXTJS 构建 Grid 表格时…

    Java 2023年6月16日
    00
  • SpringBoot如何优雅的处理校验参数的方法

    当我们使用SpringBoot开发项目时,校验参数是一个很常见的需求。如何优雅地处理校验参数,可以让我们的代码更加简洁易懂,也能更好地保证代码的可维护性。下面我将分享一些处理校验参数的优雅方法。 1. 使用Hibernate Validator Hibernate Validator是一个基于JSR 303规范的校验框架,它可以让我们非常方便地对参数进行校验…

    Java 2023年5月20日
    00
  • Spring-webflux 响应式编程的实例详解

    Spring-webflux 响应式编程的实例详解 响应式编程的概念 响应式编程是一种处理异步数据流的编程范式,其主要思想是通过数据流的变化来触发相应的操作。这种编程模型可以帮助我们更加高效地处理并发、I/O密集型的操作,对于微服务架构的实现尤其有帮助。 Spring-webflux概述 Spring-webflux是基于响应式编程的Spring框架的一个子…

    Java 2023年6月3日
    00
  • Redis介绍和使用场景详解

    Redis介绍和使用场景详解 什么是Redis Redis是一种高性能的内存数据库,其发展史可以追溯到2009年。Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合,同时还支持事务、持久化和复制等功能。Redis作为一个内存数据库,它的读写速度非常快,被广泛应用在数据缓存、消息队列、计数器等场景中。 Redis的使用场景 缓存 Redis最…

    Java 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部