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是正常的…