1.修改pom文件
修改打包方式 為war;
添加tomcat使用范圍,provided的意思即在發布的時候有外部提供,內置的tomcat就不會打包進去
<groupId>com.school</groupId>
<artifactId>daniel</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>daniel</name>
<description>student information project for Spring Boot</description>
<!--打包方式,發布時使用此項-->
<packaging>war</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--需要發布發war包時使用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2.在啟動類或者配置類中繼承SpringBootServletInitializer ,如果需要打war包部署,需要繼承此類,重寫configure方法。
@SpringBootApplication
public class DanielApplication extends SpringBootServletInitializer {
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DanielApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DanielApplication.class, args);
}
}
注意:
如果使用的springboot最新的版本則會報,我當時用的是
spring-boot-starter-parent:2.2.0.RELEASE,
mybatis-spring-boot-starter:2.1.1
修改為下面的版本問題解決,通過查詢資料發現現在的最新版本springboot與mybatis兼容性存在問題,到后面升級后應該就沒有問題了。
Failed to bind properties under 'mybatis.configuration.mapped-statements[0].parameter-map.parameter-…
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>2.2.0.RELEASE</version>-->
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<!-- <version>2.1.1</version>-->
<version>2.0.1</version>
</dependency>
附:以上的問題都已解決,但是我的項目中使用了shiro框架,在外置tomcat部署時,無法使用shiro。沒有改版本的時候使用idea是正常的…