springboot项目war包部署及出现的问题Failed to bind properties under 'mybatis.configuration.mapped-statements[0].

时间:2022-08-10 15:07:28

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