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(Applicaion.class);
}
public static void main(String[] args) {
SpringApplication.run(Applicaion.class, args);
}
}
Step 2
修改pom.xml文件
jar
为
war
并加入如下的依赖
org.springframework.boot spring-boot-starter-tomcat provided
jar变成war后要注意!此依赖实际作用,是改变springBoot内置Tomcat依赖的scope,scope为provided表示该依赖在打包过程中,不需要打进最后的包中去,这个依赖由运行的环境来提供,比如tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同,区别在于打包阶段进行了exclude操作
很有可能出现数据库连接不上的坑!
jdbc:mysql://localhost:3306/db_name
上面这个看起来没问题,但实际操作时,应注意localhost可能给你制造麻烦,某些服务器本地地址不一定是127.0.0.1,而是其他诸如192.169.1.100, 建议不用localhost,而是用实际本地地址



