Spring Boot 使用JSP时,修改JSP不生效,需要重启的问题

简介: 问题描述 公司项目用的Spring Boot,自己也就对他多研究一些,之前自己练习的Spring Boot项目,都是使用的JSP,在修改后直接刷新页面就可以看到效果,今天升级Spring Boot版本后,发现修改JSP后直接刷新页面没有用了。
  • 问题描述 
    公司项目用的Spring Boot,自己也就对他多研究一些,之前自己练习的Spring Boot项目,都是使用的JSP,在修改后直接刷新页面就可以看到效果,今天升级Spring Boot版本后,发现修改JSP后直接刷新页面没有用了。。。重启才能生效。。。

  • 问题定位 
    什么问题都抵不住爱折腾的心,我原以为更换了IDE(试了试IDEA这个工具)导致的,换回原来的Eclipse惊奇的发现也是无效的。 
    有想了想,觉得是不是因为修改POM文件添加了其他的jar包导致的(使用了shiro做权限,和redis做缓存),直接重新建一个Spring Boot项目,写了最简单的Controller,发现还是不行。。。哔了狗了。 
    各种尝试,想着难不成是Spring Boot版本升级导致的(从1.3.1升到了1.5.1)?换回1.3.1,擦!真的可以了

  • 问题原因 
    百度。。。木有答案,看来遇到的问题人还不多。。。 
    直接上stackoverflow,终于看到原因。在Spring Boot的GitHub上,有个大神(好吧,看来真的是很 牛 逼的大神)建议

spring-boot recompiles JSPs periodically leading to an unacceptable performance loss in production environments.
This behaviour is counter intuitive and hard to find.

The recompilation is behind a switch now but it's turned on (means it's in dev mode all the time).
I suggest to turn it off by default and enable it via the spring-boot-devtools.

The switch I am talking about is:

server.jsp-servlet.init-parameters.development

大致是说:spring-boot对JSP的重新编译会导致不可接受性能降低在生产环境上。找出这个现象是啥啥啥并且艰难的。 。。。 
我建议默认关闭并且通过spring-boot-devtools来开启它(指JSP修改后立即重新编译) 。。。 
而这个开关我觉得可以是这样的: 
server.jsp-servlet.init-parameters.development

官方文档:

JSP servlet

The JSP servlet is no longer in development mode by default. 
Development mode is automatically enabled when using DevTools. 
It can also be enabled explicitly by 
setting server.jsp-servlet.init-parameters.development=true.
  • 解决方案 
    好吧,废话多了,解决方案如下 
    在配置文件application.properties中添加如下配置:
server.jsp-servlet.init-parameters.development=true

解决问题。

转自:http://blog.csdn.net/baidu_29092471/article/details/58596505

目录
相关文章
|
19天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
147 17
Spring Boot 两种部署到服务器的方式
|
3月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
72 2
|
4月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
133 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
5月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
4月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
287 0
idea+maven+tomcat+spring 创建一个jsp项目
|
4月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
109 2
|
6月前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
6月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
190 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
8月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
78 2
|
8月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
83 2