La postura correcta para la implementación del proyecto Spring Boot con Tomcat externo debería ser así

1. Configurar la operación de tres pasos

 

1. Modificar el tipo de empaque del proyecto.

<packaging>war</packaging>

2. Elimine la dependencia de Tomcat incrustada (no es obligatorio)

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

Después de descomprimir el paquete war empaquetado, la dependencia proporcionada por el alcance (aquí, tomcat incrustado) se coloca en el directorio proporcionado por lib en lugar del directorio lib

3. Herede SpringBootServletInitializer y anule el método de configuración

3.1. Método uno

@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 dos

@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);
	}
}

Dos pasos de implementación de paquetes

1. El paquete Mvn está empaquetado y el nombre del paquete predeterminado es:

<artifactId>-<version>.<packaging>

Configure para los siguientes elementos:

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

El nombre del paquete después del empaque es: tomcat-demo-0.0.1-SNAPSHOT.war

2. Coloque el paquete war terminado en el directorio de aplicaciones web del tomcat externo e inicie bin / start.bat

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

Tres, asuntos que necesitan atención

1. Después de implementar el proyecto con Tomcat externo, algunas configuraciones internas de Spring Boot no son válidas, por ejemplo:

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

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

2. Cambie el nombre del paquete predeterminado después del empaque

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

Después de un empaquetado como este, el nombre del paquete es

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

El formulario de acceso se cambia a: http: // localhost: 8085 / tomcat-demo / hello

 

Supongo que te gusta

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