springboot1.5.9升级到springboot2.1.3遇到的问题

猿份哥 1年前 ⋅ 680 阅读 ⋅ 1 个赞

1.问题描述:

Failed to bind properties under 'spring.datasource.druid.driver' to java.sql.Driver:     Property: spring.datasource.druid.driver     Value: com.mysql.jdbc.Driver     Origin: class path resource [application.yml]:5:20     Reason: No converter found capable of converting from type [java.lang.String] to type [java.sql.Driver]

解决方法 

修改application.yml文件将老版本的

spring:
  datasource:
  driver: com.mysql.jdbc.Driver
修改为
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver
      

2.RabbitMq报错

The bean 'messageConverter', defined in class path resource [com/wanshifu/customer/boot/starter/rabbit/RabbitAutoConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [cn/xy/wanc/sysm/core/config/RabbitConfig.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

解决方法 

添加 spring.main.allow-bean-definition-overriding=true

3.过时的property配置

Deprecated configuration property 'spring.http.multipart.maxFileSize' Deprecated configuration property 'spring.http.multipart.max-request-size' 

spring.servlet.multipart.maxFileSize=10Mb

spring.servlet.multipart.maxRequestSize=1000Mb

解决方法 

修改为 spring.servlet.multipart.maxFileSize=10

spring.servlet.multipart.maxRequestSize=1000

  server.context-path=/web

修改为

server.servlet.context-path=/web

4.WebMvcConfigurerAdapter过时

WebMvcConfigurerAdapter过时导致之前的代码HandlerInterceptor拦截了static静态资源

解决方法:将之前extends WebMvcConfigurerAdapter修改为implements  WebMvcConfigurer

@Configuration
public class MyWebAppConfigurer  implements WebMvcConfigurer{
   String[]excludes=new String[]{
            "/static/**",//排除静态文件被拦截
            "/wxuser/login"//其他不拦截的请求
    };
 
   public void addInterceptors(InterceptorRegistry registry){
       registry.addInterceptor(WXLoginInterceptor()).addPathPatterns("/**").excludePathPatterns(excludes);
   }
 
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
      //排除静态资源
      registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
  }
}

5.Error:(4, 40) java: 程序包com.fasterxml.jackson.annotation不存在

解决方法添加依赖

 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
 </dependency>

6.Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure] from ClassLoader [sun.misc.Launcher$AppClassLoader@18

解决方法 将druid升级到1.1.10

 

7.上传图片的controller方法不执行

我遇到的一种原因图片过大。

解决方法:

1.前端压缩图片

2.服务器将参数配置放大

3.新版本对图片上传配置做了调整需要带单位(新版本默认maxFileSize=1M)超过controller就无法接收到请求

以前properties是

##图片上传限制20兆
spring.servlet.multipart.maxFileSize=2
spring.servlet.multipart.maxRequestSize=10
现在需要加上单位

##图片上传限制20兆
spring.servlet.multipart.maxFileSize=20M
spring.servlet.multipart.maxRequestSize=200M

全部评论: 0

    我有话说:

    Spring Boot系列1-helloword

      使用springboot简单轻松创建helloword SpringBoot系列1-helloword 关于springboot这是摘自官方一段话 Spring Boot

    SpringBoot系列9-使用jasypt自定义stater运行时动态传入加密密码

    文章目录 1.新建springboot-encryption-configuration项目实现stater 2.pom文件引入jasypt 3.在resources/support/下配置

    SpringBoot系列16-Spring boot2x快速整合swagger2(Open Api3注解版)

    前言:为什么要使用swagger 传统web开发,前端和后端HTTP接口文档交互都是使用word文档记录,存在不仅限于这些问题;不能时时更新,不易于传输etc. swagger2可以使用配置文件

    如果SpringBoot与SpringCloud老是出各种问题,别急!请看下面SpringBoot与SpringCloud版本对应详细版

    1.问题 当我们在开发微服务时候因为SpringBoot和SpringCloud这两兄弟版本没有对应好老是出现各种各样问题。特别苦逼!别急,往下看!遇到就是缘分,我叫猿份哥! 2.原因

    Spring Boot系列5-定时任务-springboot整合quartz实现动态定时任务

    MyJob实现Job接口,重写execute方法在里面操作我们要执行业务逻辑。 @Slf4j public class MyJob implements Job { @Autowired

    SpringBoot系列15-mysql-multiple-data-sources1

    springboot 多数据源一个简单示例 多数据源分包加载 新建数据库test1和表tbl_user CREATE TABLE `tbl_user` ( `id` int(11) NOT

    Spring Boot系列7-SpringBoot+mybatis+druid+TypeHandler

    介绍在SpringBoot中集成mybatis和druid以及自定义TypeHandler 创建数据库表 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- --------------------...

    Spring Boot系列6-SpringBoot中使用servlet

    介绍在SpringBoot中如何使用servlet pom.xml <dependency> <groupId>org.springframework.boot<

    spring boot系列4-定时任务-springboot自带scheduled超级简单

    需求:创建一个每天凌晨0点执行定时任务1.创建任务 /** * @author 天空蓝蓝 */ @Slf4j @EnableScheduling @Component public class

    springboot项目运行在docker中 file.exists()返回false没有报错

      springboot项目运行在docker中 file.exists()返回false没有报错   表现:在windows运行正确,但是打包后运行在docker容器中找不

    spring boot系列3-四步完成观察者事件发布接收(发送消息接收消息)使用异步方不阻塞主线程

    1.首先Application开启异步 @SpringBootApplication @EnableAsync public class DemoApplication { public

    SpringBoot系列10-文件上传

    文章目录 1.先来最简单 2.设置文件大小,请求大小 3.多文件上传 怎样使用最简单方式上传文件,如何上传多个文件呢 先来最简单 pom.xml文件引入依赖文件 <

    Spring Boot系列2-全局统一异常处理

    原创: 天空和唯美 天空唯美  点击查看原文 为什么要全局统一异常处理呢?如果系统发生了异常,不做统一异常处理,前端会给用户展示一大片看不懂文字。做统一异常处理后当

    SpringBoot系列19-防止重复请求,重复表单提交超级简单注解实现之四(终极版II)

    前言: 根据最新spring boot:2.5.0版本和在《SpringBoot防止重复请求,重复表单提交超级简单注解实现之四(终极版I)》之上化繁为简抽取更实用代码,新增超时机制 防重复提交

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    发生这样问题原因有以下几点 1.mapper接口类全名与mapper.xmlnamespace不一致 2.mapper接口方法与mapper.xmlid不一致 3.mapper.xml中文

    加入公众号
    加入公众号