Spring Boot 2.0干货系列:Spring Boot1.5X升级到2.0指南_第1页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、spring boot 2.0干货系列:spring boot1.5x升级到2.0指南前言 spring boot已经发布2.0有满久了,多了无数新特性,一些坑也渐渐被填上,最近有空,就把本博客中spring boot干货系列对应的源码从1.5x升级到spring boot 2.0,顺便收拾下升级的时候碰到的一些坑,做个记录。后续的教程就以最新的2.03版本为主。 依靠 jdk 版本升级 2.x 起码需要 jdk 8 的支持,2.x 里面的许多办法应用了 jdk 8 的许多高级新特性,所以你要升级到 2.0 版本,先确认你的应用必需兼容 jdk 8。 另外,2.x 开头了对 jdk 9 的支持

2、。 第三方类库升级 2.x 对第三方类库升级了全部能升级的稳定版本,一些值得关注的类库升级我给列出来了。 1) spring framework 5+ 2) tomcat 8.5+ 3) flyway 5+ 4) hibernate 5.2+ 5) thymeleaf 3+ 启动类报错 问题: 启动类springbootservletinitializer标红报错,导入的类不对。 缘由: spring boot 部署到 tomcat 中去启动时需要在启动类添加springbootservletinitializer,2.0 和 1.0 有区分。 解决计划: package com.dudu;

3、import com.dudu.util.mymapper; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.boot.builder.springapplicationbuilder; import org.springframework.boot.we

4、b.servlet.support.springbootservletinitializer; import org.springframework.transaction.annotation.enabletransactionmanagement; import javax.sql.datasource; springbootapplication /启注解事务管理 enabletransactionmanagement / 启注解事务管理,等同于xml配置方式的 mapperscan(basepackages = "com.dudu.dao", markerinter

5、face = mymapper.class) public class application extends springbootservletinitializer override protected springapplicationbuilder configure(springapplicationbuilder application) return application.sources(application.class); public static void main(string args) springapplication.run(application.class

6、, args); 配置文件报错 问题: 配置文件中项目名称配置报错:server.context-path: /spring 缘由: 大量的servlet专属的server.* properties被移到了server.servlet下: 由此可以看出一些端倪,那就是server不再是惟独servlet了,还有其他的要加入。 解决计划: server.context-path: /spring改成server.servlet.context-path: /spring既可 web starter 作为传递依靠 问题: 工程用的模板是thymeleaf,启动报错提醒找不到spring-boot-

7、starter-web 缘由: 以前有几个 spring boot starter 是依靠于 spring mvc 而传递的spring-boot-starter-web。在 spring webflux 新的支持下,spring-boot-starter-mustache,spring-boot-starter-freemarker并spring-boot-starter-thymeleaf不再依靠它。开发者有责任挑选和添加spring-boot-starter-web或spring-boot-starter-webflux。 解决计划: 导入spring-boot-starter-web既

8、可 org.springframework.boot spring-boot-starter-web thymeleaf 3.0 默认不包含布局模块 问题: 启动项目的时候发觉首页空白,查看后台也没有任何的报错信息 缘由: spring boot 2.0 中spring-boot-starter-thymeleaf 包默认并不包含布局模块,需要用法的时候单独添加。 解决计划: .ultraq.thymeleaf thymeleaf-layout-dialect 拦截器过时 问题: 升级后,webmvcconfigureradapter提醒过时 缘由: 升级后的springboot,用法了jav

9、a8的特性 default 办法,所以挺直实现 webmvcconfigurer 这个接口即可。 解决计划: 旧: public class mywebmvcconfigureradapter extends webmvcconfigureradapter 新: public class mywebmvcconfigureradapter implements webmvcconfigurer 静态资源被拦截 问题: 拜访系统的时候登录样式没有加载 缘由: 1.5版本时候meta-inf/resources / resources / static / public 都是spring boot

10、 认为静态资源应当放置的位置,会自动去寻觅静态资源,而在spring boot 2.0则对静态资源也举行了拦截,当拦截器拦截到哀求之后,但controller里并没有对应的哀求时,该哀求会被当成是对静态资源的哀求。此时的handler就是 resourcehttprequesthandler,就会抛出上述错误。 解决计划: 解决方法就是,在拦截器那里排解静态资源的哀求路径 /* * 拦截器 * param registry */ override public void addinterceptors(interceptorregistry registry) / addpathpattern

11、s 用于添加拦截规章 / excludepathpatterns 用户排解拦截 registry.addinterceptor(new myinterceptor().addpathpatterns("/*").excludepathpatternss("/tologin","/login","/assets/*","/js/*"); assets就是我放静态文件的名目 全局异样特别处理 问题: 上一篇提到过的有些错误你可能想特别对待处理的,现在对应代码标红,找不到对应的类 缘由: 新版本后该办

12、法去掉了,需要换成新的办法处理 解决计划: 旧代码: configuration public class containerconfig bean public embeddedservletcontainercustomizer containercustomizer() return new embeddedservletcontainercustomizer() override public void customize(configurableembeddedservletcontainer container) container.adderrorpages(new errorp

13、age(httpstatus.internal_server_error, "/error/500"); container.adderrorpages(new errorpage(httpstatus.not_found, "/error/404"); ; 新代码: configuration public class containerconfig implements errorpageregistrar override public void registererrorpages(errorpageregistry registry) errorpage errorpages = new errorpage2; errorpages0 = new errorpage(httpstatus.internal_server_error, "/error/500"); errorpages1 = new errorpage(httpstatus.not_found, &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论