下面是关于“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技术站