下面是详细的步骤。
1.创建Spring Boot项目
首先,需要使用Spring Initializr创建一个Spring Boot项目。这里我们以创建一个简单的Spring Boot RESTful应用为例。
可以使用如下命令创建:
curl https://start.spring.io/starter.zip -o myproject.zip
unzip myproject.zip -d myproject
然后,编辑build.gradle文件,添加如下依赖项:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}
这里的providedRuntime
表示Tomcat不会打包进我们的应用程序,而是由外部Tomcat容器来提供。
2.构建打包成war
在项目的根目录下执行命令:
./gradlew build
或者
mvn package
即可构建项目并生成可执行的war文件。可以在build/libs/
目录下找到生成的war文件。
3.配置Tomcat
将war文件部署到Tomcat服务器,这里以Tomcat 9为例。
- 将生成的war文件复制到Tomcat的
webapps/
目录下。 - 启动Tomcat服务器,war文件会自动解压并部署。
- 访问
http://localhost:8080/your-project-name/
即可看到我们的应用程序页面。
需要注意的是,在使用外部Tomcat容器时,我们需要指定servlet容器为Tomcat,如下所示:
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(YourProjectNameApplication.class);
}
}
示例1:使用Gradle
为了演示如何使用Gradle构建和打包Spring Boot应用程序,我们将创建如下的RESTful服务。
创建Spring Boot项目:
使用Gradle构建Spring Boot项目:
plugins {
id 'org.springframework.boot' version '2.5.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
创建一个名为MyController的类:
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
使用Gradle构建项目:
./gradlew build
运行命令会自动编译我们的应用程序,并打包成war文件。可以在build/libs/
目录找到生成的war文件,例如my-app-0.0.1-SNAPSHOT.war
。
示例2:使用Maven
为了演示如何使用Maven构建和打包Spring Boot应用程序,我们将创建如下的RESTful服务。
创建Spring Boot项目:
使用Maven构建Spring Boot项目:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>my-app</name>
<description>spring boot demo</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建一个名为MyController的类:
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
使用Maven构建项目:
mvn package
运行命令会自动编译我们的应用程序,并打包成war文件。可以在target/
目录找到生成的war文件,例如my-app-0.0.1-SNAPSHOT.war
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot项目打包成war在tomcat运行的全步骤 - Python技术站