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);
}
}
修改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);
}
}
修改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依赖的作用域,使其被部署时不会出现冲突
很有可能出现数据库连接不上的坑!
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db_name</property>
上面这个看起来没问题,但实际操作时,应注意localhost
可能给你制造麻烦,某些服务器本地地址不一定是127.0.0.1
,而是其他诸如192.169.1.100
, 建议不用localhost
,而是用实际本地地址