`

89. Spring boot devtools使用异常【从零开始学Spring Boot】

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

springboot + devtools(热部署)【从零开始学Spring Boot

章节中我们已经介绍了spring boot中使用devtools的基本步骤以及一些注意事项了,本节针对于网友的一些问题,在总结出一些注意点,以及在实际开发中一些重要的地方。

       问题的提出:

       devtools中在编写一个普通的程序时,都是能够运行的很正常的,但是和其它进行一起运行的时候,可能就会出现各种各样的问题了,比如:登录之后,然后修改了一些代码之后devtoolsrestart,然后重新一访问又重新登录了。

1devtools restart session设置为restart之后依然存在

       如果restart之后session失效的话,那么就会造成需要重新登录问题,这个问题很好解决,只需要在application.properties添加如下配置:

server.session.persistent=true

注意在spring boot 1.3.3 / 1.4.0默认就是true

 

2)修改模板文件restart不生效

       模板文件不生效主要是由于模板有缓存,只要把缓存给关闭即可,配置application.properties文件:

#模板引擎:thymeleaf;

spring.thymeleaf.cache=false

#Javascript 语言的模板引擎:Mustache

spring.mustache.cache=false

#模板引擎:velocity

spring.velocity.cache=false

#groovy模板

spring.groovy.template.cache

 

3 causing ClassCastException while getting from cache.

       当在使用缓存的时候,可能就会抛出如上的异常信息了,这是devtools已知的限制。当缓存条目被反序列化时,对象无法附加到合适的类加载器。

       有一些方法可以修复这样的问题:

1)当运行在开发环境的时候,禁用缓存,配置spring.cache.type=NONE

2)使用一个不同的缓存管理器(假如你正在使用spring boot 1.3,你能够强制使用simple cache manager通过在application-dev.properties配置spring.cache.type,并且使用在你的IDE中启用dev profile

3)在应用程序类加载器配置缓存,这种比较复杂,需要新建META-INF/spring-devtools.properties

文件进行配置,支持restart.exclude. and restart.include.

例如:

restart.include.companycommonlibs=/mycorp-common-[\\w-]+\.jar

restart.include.projectcommon=/mycorp-myproj-[\\w-]+\.jar

 

 

       好了使用devtools还是有好多坑的,还是希望官方在这方面能够多下功夫,比如如果能支持指定某一些类不重新加载等等的这样的配置或者整个加载器能够编写的更加强大就好了。

视频&交流平台

à SpringBoot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

分享到:
评论
1 楼 1988南墙之南 2017-11-17  
这东西和mybatis的一款名为mapper3的插件冲突,会出现同一个类不能强制转化的错

相关推荐

    21. Spring Boot过滤器、监听器【从零开始学Spring Boot】

    而工具的使用则能提高开发效率,例如IDEA中的Spring Boot DevTools,提供热部署功能,方便开发过程中快速测试。 总结,Spring Boot的过滤器和监听器提供了强大的自定义处理能力,开发者可以根据需求灵活地扩展功能...

    SpringBoot面试专题及答案

    1. **减少开发时间**:通过预设配置,Spring Boot 能够让开发者快速构建应用,无需从零开始设置基础结构。 2. **JavaConfig 支持**:JavaConfig 提供了用 Java 代码配置 Spring 容器的能力,避免了XML配置的繁琐,...

    0搭建springboot项目步骤.zip

    在本文中,我们将深入探讨如何从零开始搭建一个Spring Boot项目,并逐步集成多个常用技术,如JDBC、JPA、MyBatis、Redis、MyBatisPlus和Swagger2。Spring Boot以其简洁的配置和快速的开发体验,已经成为Java开发者...

    基于SpringBoot和Echarts的仪表盘Dashboard系统的设计与实现.docx

    - Spring Boot DevTools:开发者工具,支持热部署、错误报告等,提升开发效率。 2.4 SpringBoot在仪表盘系统中的应用 在仪表盘系统中,SpringBoot可以作为基础架构,提供后端服务。它可以处理数据的CRUD操作,与...

    Startup-ready-web-skeleton

    "Startup-ready-web-skeleton" 是一个专为快速启动Web项目的框架,它包含了必要的配置和结构,使得开发者可以迅速地开始编码工作,而无需从零构建整个项目环境。这个框架主要基于Java技术栈,因此,对Java程序员来说...

    SpringBoot后台CRM项目(第一季)

    本教程以SpringBoot为核心,结合Mybatis、LayUI和Thymeleaf等流行框架,从零开始带领开发者构建一个功能完备的后台系统。 SpringBoot是Spring框架的简化版,它简化了配置并提供了开箱即用的功能,使得开发者能够...

Global site tag (gtag.js) - Google Analytics