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 [[email protected]]
... ...
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 [[email protected]]
... ...
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

完结,撒花。。。

原文地址:https://www.cnblogs.com/itmacy/p/12314965.html

时间: 2024-10-09 03:12:30

SpringBoot项目版本升级:从1.5.3升级到2.1.8版本的相关文章

关于springboot项目中自动注入,但是用的时候值为空的BUG

最近想做一些web项目来填充下业余时间,首先想到了使用springboot框架,毕竟方便 快捷 首先:去这里 http://start.spring.io/ 直接构建了一个springboot初始化的项目框架 然后:在页面上选择相应的依赖包,然后点击构建按钮,然后下载并且导入IDE中,目前喜欢使用IDEA 于是一个简答的springboot项目就搭建好了 废话说完,然后想体验下spring中redis的使用: 那就直接新建了一个类,然后 @Autowired 自动注入 RedisTemplate

springboot项目怎么部署到外部tomcat

spring-boot项目中,默认提供内嵌的tomcat,所以打包直接生成jar包,用Java -jar命令就可以启动. 但是也有一定的需求,会使用外部tomcat来部署项目.下面来看: 1.新建项目boot-tomcat-test 2.pom依赖:(添加spring-boot-starter-tomcat依赖,打包方式为war) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="

Android版本升级同时Sqlite数据库的升级及之前数据的保留

http://www.cnblogs.com/wang340/archive/2013/05/06/3063135.html http://www.eoeandroid.com/forum.php?mod=viewthread&tid=166052 做Android应用,不可避免的会与SQLite打交道.随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了. SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已

intellij IDEA与springboot项目建立

一.下载并安装, IntelliJ IDEA的官网:https://www.jetbrains.com 二.不要使用社区版很多功能都没有,下载旗舰版后,破解 三:建立springboot项目 首先修改idea的maven仓库,因为如果默认的仓库,下载依赖会非常的慢,对于修改仓库,我刚开始修改了,可是新打开一个窗口还是默认的,这里折腾了有点时间,后面百度解决了此问题. 只有修改了默认的地址才可以:有两种方法:如下: 修改后,建立项目才会从本地或者阿里云下载依赖. maven的setting设置为阿

项目案例分析四:DC升级后Sysvol停止复制,日志报13508

最近在240个站点AD升级项目过程中遇到个别DC升级后Sysvol里面的内容同步到一半就不动了,连续一个星期都没有动静,今天在此跟大家分享此问题的处理方法. 1.环境介绍 其中DC01和DC02是中国总部的DC,中国地区其他两百多站点通过KCC生成的链路和DC01或DC02进行复制: DC01和DC02为桥头服务器: 2. 问题现象 2.1 查看Sysvol下的Policies内容,最后一次复制时间为20150215,已经超过一个星期没有动静了,而且GPO数量只有138个(复制完全的GPO数量为

springboot项目的创建

创建springboot项目 包名和项目名 选择需要使用的框架,web 然后再点击下一步,完成即可创建springboot项目

SpringBoot项目设置热部署

记录一个SpringBoot 设置热部署(修改项目之后,项目自动重启)实例 POM.XML 文件 <!-- 配置springBoot项目的热部署启动 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional>

【转】Android版本升级同时Sqlite数据库的升级及之前数据的保留

做Android应用,不可避免的会与SQLite打交道.随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了. SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段.并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段:1 ALTER TABLE Subscription ADD COLUMN Activation BLOB;2 ALTER TABLE Sub

我的第三个springboot项目,servlet实现一个转盘抽奖程序

继上面第二个springboot项目后,今晚应朋友需求帮忙写个抽奖程序,想着就用springboot+servlet去发布一个服务给前端直接调用或者后端直接调用. 下面来介绍一下: 1.不错,依然需要一个Application的启动springboot的入口 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;