zoukankan      html  css  js  c++  java
  • SpringBoot项目版本升级:从1.5.3升级到2.1.8版本

    SpringBoot项目版本升级:从1.5.3升级到2.1.8版本

    前言

    简单记录一次本人在自己的SpringBoot项目project-template中,把1.5.3版本升级到2.1.8版本时升级的步骤,及遇到的问题。

    提升parent版本号

    更改pom文件中parent的版本号

       <parent>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-parent</artifactId>
           <version>2.1.8.RELEASE</version>
           <relativePath />
       </parent>
    

    修改yml文件中的部分配置

    在1.5版本中,部分配置与2.1版本有些不同

    应用名及上下文

    1.5版本

    server:
      application-display-name: ProjectTemplate-Web
      context-path: /project
    

    2.1版本

    server:
      servlet:
        application-display-name: ProjectTemplate-Web
        context-path: /project
    

    文件上传

    1.5版本

    spring:
      http:
        multipart:
          location: E:/dev/Project/work/project_data/projettemplate/temp/dev  #文件临时目录
          max-request-size: 40MB
          max-file-size: 40MB
    

    2.1版本

     spring:
       servlet:
         multipart:
           location: E:/dev/Project/work/project_data/projettemplate/temp/dev # 文件临时目录
           max-request-size: 40MB
           max-file-size: 40MB
    

    mysql连接

    1.5版本

      spring:
         datasource:  
    	   url: jdbc:mysql://localhost:3306/projettemplate?useUnicode=true&useSSL=false&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT
    	   username: root
    	   password: root
    	   type: com.alibaba.druid.pool.DruidDataSource
    	   driver-class-name: com.mysql.cj.jdbc.Driver
    

    2.1版本

      spring:
         datasource:  
           druid:
             url: jdbc:mysql://localhost:3306/projettemplate?useUnicode=true&useSSL=false&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT
             username: root
             password: root
             db-type: com.alibaba.druid.pool.DruidDataSource
             driver-class-name: com.mysql.cj.jdbc.Driver
    

    redis配置

    1.5版本

     spring:
      redis:   # REDIS (RedisProperties)
        database: 0
        host: 127.0.0.1
        port: 6379
        timeout: 2000
        pool:
          max-active: 8
          max-wait: -1
          max-idle: 8
          min-idle: 0
    

    2.1版本

     spring:
       redis:   # REDIS (RedisProperties)
         database: 0
         host: 127.0.0.1
         port: 6379
         timeout: 2000
         jedis:
           pool:
             max-idle: 8
             max-wait: -1
    

    启动项目遇到的问题

    druid-spring-boot-starter版本过低报异常

    当版本为1.1.6时,报异常:

    ... ...
    Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]
    ... ...
    Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvider
    ... ... 
    java.lang.IllegalStateException: Failed to introspect Class [com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]
    ... ... 
    Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/jdbc/metadata/DataSourcePoolMetadataProvider
    ... ... 
    Caused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider
    

    升级为1.1.10版本即可

     <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid-spring-boot-starter</artifactId>
         <version>1.1.10</version>
     </dependency>
    

    SpringSecurity的AuthenticationManager启动报异常

    当报异常:

    A component required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found
    

    在SpringSecurity文件中重写即可

        @Bean(name = BeanIds.AUTHENTICATION_MANAGER)
        @Override
        public AuthenticationManager authenticationManagerBean() throws Exception {
            return super.authenticationManagerBean();
        }
    

    其他

    当报以下异常:

    The bean 'userDetailsServiceImpl', defined in class path resource [com/itmacy/dev/auth/security/SecurityConfig.class], could not be registered. A bean with that name has already been defined in file [/Users/chenmeixuan/macy/dev/project/study/webBack/project-template/target/project-template-1.0.0-SNAPSHOT_20200215-1336/classes/com/itmacy/dev/auth/security/UserDetailsServiceImpl.class] and overriding is disabled.
    
    

    在yml文件中添加以下配置即可

    spring:
       main:
         allow-bean-definition-overriding: true
    

    完结,撒花。。。

  • 相关阅读:
    分布式事务 小结
    分布式事务的CAP理论 与BASE理论
    乐观锁与悲观锁
    CentOS7中DHCP配置
    pandas 学习(2): pandas 数据结构之DataFrame
    pandas 学习(1): pandas 数据结构之Series
    NumPy 学习(3): 通用函数
    NumPy 学习(2): 数组的操作
    NumPy 学习(1): ndarrays
    在Windows宿主机中连接虚拟机中的Docker容器
  • 原文地址:https://www.cnblogs.com/itmacy/p/12314965.html
Copyright © 2011-2022 走看看