Skip to content

Files

Latest commit

 

History

History
78 lines (55 loc) · 1.97 KB

springboot.md

File metadata and controls

78 lines (55 loc) · 1.97 KB

SpringBoot

项目从jar变成war

IDEA使用Sping Initializer新建SpringBoot项目,选择打包为jar后,如果后期想改成war部署在Tomcat中,该怎么做呢?

假设我们的启动类为Applicaion.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

Step 1

修改Application类,使其继承自SpringBootServletInitializer, 并重写configure方法

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Applicaion extends SpringBootServletInitializer{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(CourseWarApplication.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Applicaion.class, args);
    }
}

Step 2

修改pom.xml文件

<packaging>jar</packaging>

<packaging>war</packaging>

并加入如下的依赖

<!-- 这个是比生成jar文件要多加的包 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

实际是改变springBoot内置Tomcat依赖的作用域,使其被部署时不会出现冲突

jar变成war后要注意!

很有可能出现数据库连接不上的坑!

<property name="jdbcUrl">jdbc:mysql://localhost:3306/db_name</property>

上面这个看起来没问题,但实际操作时,应注意localhost可能给你制造麻烦,某些服务器本地地址不一定是127.0.0.1,而是其他诸如192.169.1.100, 建议不用localhost,而是用实际本地地址