springboot使用外置tomcat启动方式

yizhihongxing

下面是关于“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日

相关文章

  • JavaWeb开发入门第二篇Tomcat服务器配置讲解

    下面是对”JavaWeb开发入门第二篇Tomcat服务器配置讲解”的完整攻略: 1. 下载Tomcat服务器 首先需要到Tomcat的官网(https://tomcat.apache.org/)下载对应的版本,选择”Download”页面中的合适版本即可。下载完成后,解压到本地即可。 2. 配置环境变量 在操作系统中配置Tomcat服务器的环境变量可以让我们…

    Java 2023年5月20日
    00
  • java实现动态代理示例分享

    下面是“java实现动态代理示例分享”的完整攻略: 什么是动态代理? 在Java中,代理是一种常见的设计模式。代理模式的主要作用是提供间接访问,控制对对象的访问。代理模式使得代理对象可以在不改变原始对象的情况下,对对象的访问进行扩展。动态代理是一种特殊类型的代理模式,它是在程序运行时动态地创建代理对象,而不是在编译时就定义。 在Java中,动态代理是通过代理…

    Java 2023年5月30日
    00
  • Java中的异常处理如何提高程序性能?

    Java中的异常处理机制是保证程序健壮性和可靠性的一项重要特性。合理利用异常处理可以提高程序的性能和可读性,下面我们来详细讲解Java中的异常处理如何提高程序性能。 1. 不要滥用异常 异常处理机制是有代价的,如果频繁抛出异常,可能会造成性能问题。因为抛出异常需要创建新的异常对象,这需要时间和内存。所以,在代码编写时,我们应该避免不必要的异常抛出,只在必要时…

    Java 2023年4月27日
    00
  • Java编程通过list接口实现数据的增删改查代码示例

    Java编程通过list接口实现数据的增删改查是非常常见的需求。下面我将详细讲解这个完整攻略,其中包括以下几个部分: list接口的简介和操作方式 如何实现数据的增删改查 两个具体的示例说明 1. list接口的简介和操作方式 List接口是Java Collections(集合)框架中的一种,它继承自Collection接口。List中的元素是有序的,可以…

    Java 2023年5月23日
    00
  • Java_Spring之Spring 中的事务控制

    Java Spring之Spring 中的事务控制 在Java Spring中,事务控制是非常重要的一部分。本文将详细讲解Spring中的事务控制,包括事务的概念、事务的属性、事务的传播行为、事务的隔离级别和事务的示例说明。 事务的概念 事务是指一组操作,这些操作要么全部执行成功,要么全部执行失败。在Java Spring中,事务通常用于保证数据库操作的一致…

    Java 2023年5月18日
    00
  • java实现电话本系统

    Java实现电话本系统攻略 1. 系统概述 Java实现电话本系统,是指使用Java编程语言和相关的开发框架实现一个方便用户管理联系人信息的系统。系统的目标是支持联系人的增删改查、分组管理、导入导出、备份恢复等功能。具体而言,系统将包括以下模块: 用户登录和注册:为用户提供账号管理功能,增强系统的安全性; 联系人管理:用户可以查看、添加、删除、修改联系人的信…

    Java 2023年5月19日
    00
  • Struts2之Action接收请求参数和拦截器详解

    Struts2之Action接收请求参数和拦截器详解 本文主要介绍了如何在Struts2中使用Action来接收请求参数,并通过拦截器对Action进行增强。 Action接收请求参数 在Struts2中,我们可以通过Action来获取请求中的参数。 获取参数的方式 直接在Action的成员变量中声明参数,并提供setter方法,Struts2会自动为我们注…

    Java 2023年5月20日
    00
  • java解一个比较特殊的数组合并题

    我将为您讲解如何解决一个比较特殊的Java数组合并题。我将分为以下步骤进行讲解: 确定题目要求:根据题目要求,我们需要实现一个方法,用于将两个有序数组合并为一个大的有序数组。 确定解题思路:我们可以使用双指针的方式来解决这个问题,具体思路如下: 1) 我们定义三个指针:p1指向第一个数组的开头,p2指向第二个数组的开头,p3指向新数组的开头。 2) 比较p1…

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