Spring Boot修改启动类

本文介绍如何在Spring Boot中修改启动类以适应传统WAR部署。默认情况下,Spring Boot使用嵌入式容器,但若需打包为WAR并在外部Tomcat中运行,需继承SpringBootServletInitializer并配置WebApplicationInitializer。此操作仅适用于WAR部署,若使用嵌入式容器则不需此步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

spring boot默认情况下是自带了一个嵌入式容器,也就是不用部署在tomcat或jetty容器中即可访问及运行,所以,需要打包构建war及部署在服务器上,必须修改启动类:

如下:

/**
 * 默认情况下是自带的嵌入式容器,如果需要构建war文件并进行部署时
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 * 打成war包放到tomcat中启动必须要这个类才行
 */
@SpringBootApplication
public class BattleManagerApplication extends SpringBootServletInitializer{

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

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

官网文档如下:

SpringBootServletInitializer类



Spring Boot项目中,启动类通常会被标记为应用程序的入口点。为了标识一个类作为Spring Boot启动类,需要使用`@SpringBootApplication`注解。`@SpringBootApplication`是一个复合注解,它包含了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`三个注解,分别具有以下功能: 1. `@Configuration`:表明该类是一个配置类,Spring容器在启动会处理类上的`@Configuration`注解,该注解的类内部定义的bean都会被Spring容器管理。 2. `@EnableAutoConfiguration`:开启Spring Boot的自动配置功能,根据类路径中的jar包依赖,自动添加相应的bean定义,配置项目所需的基础配置。 3. `@ComponentScan`:允许Spring Boot组件扫描并注册到Spring容器中,通常用来指定扫描的包路径,将带有`@Component`、`@Service`、`@Repository`等注解的类自动注册为Spring的bean。 如果启动类没有启动符号,可能是指没有`main`方法作为程序的入口,或者缺少了`@SpringBootApplication`注解。确保在启动类中有如下结构: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 在上述代码中,`@SpringBootApplication`注解标示了这个类为Spring Boot启动类,而`main`方法使用`SpringApplication.run()`来启动应用。`MyApplication`类名和`main`方法名可以根据实际情况更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值