A postura correta para a implantação do projeto Spring Boot com Tomcat externo deve ser assim

1. Configure a operação de três etapas

 

1. Modifique o tipo de embalagem do projeto

<packaging>war</packaging>

2. Remova a dependência incorporada do tomcat (não necessário)

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<!-- scope设置为provided, 表明依赖由外部容器提供,在打包时会将该包排除 -->
	<scope>provided</scope>
</dependency>

Depois que o pacote war empacotado é descompactado, a dependência fornecida pelo escopo (aqui, tomcat integrado) é colocada no diretório fornecido pela lib em vez do diretório lib

3. Herdar SpringBootServletInitializer e substituir o método de configuração

3.1. Método Um

@RestController
@SpringBootApplication
public class TomcatDemoApplication extends SpringBootServletInitializer{

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

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(TomcatDemoApplication.class);
	}

	@GetMapping("/hello")
	public String hello() {
		return "hello world";
	}
}

3.2. Método Dois

@RestController
@SpringBootApplication
public class TomcatDemoApplication extends SpringBootServletInitializer{

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

	@GetMapping("/hello")
	public String hello() {
		return "hello world";
	}
}
public class ServletInitializer extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(TomcatDemoApplication.class);
	}
}

Dois, etapas de implantação do pacote

1. O pacote Mvn é empacotado e o nome do pacote é padronizado para:

<artifactId>-<version>.<packaging>

Configure para os seguintes itens:

<groupId>com.example</groupId>
<artifactId>tomcat-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

O nome do pacote após o empacotamento é: tomcat-demo-0.0.1-SNAPSHOT.war

2. Coloque o pacote war concluído no diretório webapp do tomcat externo e inicie bin / start.bat

3. Visite  http: // localhost: 8085 / tomcat-demo-0.0.1-SNAPSHOT / hello , a página normalmente retorna "hello world"

Três, questões que precisam de atenção

1. Após implantar o projeto com tomcat externo, algumas configurações internas do Spring Boot são inválidas, por exemplo:

server.port, server.servlet.context-path 等, 

因为这些配置都是针对内嵌tomcat容器的,要修改端口号和部署根路径的话,需要修改外部tomcat的相关配置

2. Altere o nome do pacote padrão após empacotar

<build>
	<finalName>tomcat-demo</finalName>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

Depois de empacotar como este, o nome do pacote é

<finalName>.war, 这里即为tomcat-demo.war

O formulário de acesso foi alterado para: http: // localhost: 8085 / tomcat-demo / hello

 

Acho que você gosta

Origin blog.csdn.net/u014225733/article/details/97370817
Recomendado
Clasificación