spring - 是否可以使用 Spring/Tomcat/Intellij 进行实时更改反馈?

标签 spring angularjs tomcat intellij-idea development-environment

我在下一个项目之前还有几周的时间,我正在寻找/想要简化我们的开发流程,以便为用户体验和开发人员提供最短的变更验证准备时间(例如,10 秒用于 Java 变更/1 秒用于UX/JS 更改)。

基本上,我想要 John Lindquist 在这个 video 中展示的内容(3 分钟内通过 webstorm 和 Angular 待办事项列表示例进行实时反馈)但我使用 Tomcat 和 Spring。

过去几天我一直在用我们的堆栈(Tomcat8、Intellij13、Spring4、Angular)研究/玩这个,我只是没有“明白”所以认为这是我在这方面缺乏知识,我是遗漏了一些东西(因此是 SO 问题)。

迄今为止我为 UX Guys 取得的成就

Grunt (使用节点)提供“静态资源”(JS/SCSS/模板)和 livereload 以刷新 chrome - 这非常好并且非常接近我想要的(来自 SCSS/JS/HTML 更改的 RT 反馈)但是很大问题是节点正在服务于静态资源而不是 TC,因此使用跨源策略(通过 thisthis 解决)- intellij 中的重建变得困惑,涉及 grunt - 查看 SCSS 编译与 file watchers但它不是胶凝) - 简而言之,我没有得到 grunt services static & TC REST API 和谐工作。另一个选项是 this guy当文件更改但不想去那里时,用 grunt 更新 TC 资源。

这让我回到文件观察器、jetbrains 实时编辑(网络 Storm 视频显示的内容)和 intellij,我再次谈到静态内容,因为 intellij 可以在帧停用时更新 TC 上的资源,但是(和一个很大的但是)这不是实时的,当你改变资源结构时,你需要刷新页面但是我们正在处理 SPA这会在刷新时丢失上下文,这会减慢人们的速度,因为必须回复序列以返回到发生更改的位置,并且在使用 intellij 时,他们必须“框架停用”才能将更改推送到 TC(它们在双显示器上所以关闭 intellij 与按下按钮来部署更改是一样的)

迄今为止最好的是 grunt 并接受相同的开发问题,但我是否遗漏了 UX 人员的一些东西?

迄今为止我为 Dev Guys 取得的成就

在我们开始之前,买不起jrebel 也没有得到Spring Loaded使用 intellij 和 tomcat(还)。

在这个阶段,当 bean 定义/方法结构发生变化时,只需让 intellij 刷新 TC 并更改类并重新启动。不好,我知道,但“这是我们习惯的”

看看 spring boot - 很有前途但理想情况下不希望放弃配置自由,但我相信它确实会在服务器上提供实时更新。

Grails 目前已推出,因此无法从中受益。

我知道 Play 允许一些实时更新,但同样,我没有详细研究这个问题,也没有从当前堆栈中进行重大转变。

总结

在开发方面,可能会坚持实时编辑并接受刷新/停用问题,因此我们无法“实现”John Lindquist 在 Webstorm 中展示的内容,即使用 Tomcat/Intellij/Chrome 时资源发生变化时的实时更新 -或者至少“我不知道”如何实现这一目标?

服务器端——我仍在努力,将继续研究 spring loaded 和 intellij 集成,然后研究 jrebel,看看我们可以获得多少预算,如果有的话,但与此同时有没有其他选择,因为我看到 node/ruby/grails 的人得到了这一切,所以我相信它一定是我,我错过了使用 Tomcat 和 Spring 时从我们的代码更改中获得超快速反馈的最佳设置?

最佳答案

简而言之,是的,有可能并且已经实现了我设定的目标 - 即 Java EE 平台中的所有开发更改(包括 JS/SCSS 更改和 Spring/Java 更改)“实时”发生( 5/10 秒服务器,2 秒用户体验)。我记录了一点video在行动中展示这一切(请原谅缺乏戏剧性)..

堆栈:

  • AngularJS

  • Grunt - 使用 http proxy 提供静态页面到 /service 上下文调用。由于 2 个原因需要代理 - 1 是为了 解决跨源问题和 2 - 以便实时静态 资源更改(HTML/JS/SCSS)显示在 Chrome 中 - 你不能这样做 tomcat 作为资源复制到 TC 中的 web-app 文件夹和 不直接从源提供服务(Intellij 可以在框架停用时重新部署,但效果不佳,并且不允许在 Chrome 中反射(reflect)即时更改)..

    <
  • Grunt 监视 SCSS 更改(我相信您可以在 虽然是 intellij,但有 grunt 服务于静态内容)

  • Live Edit 即时更新 Chrome。

  • JRebel for Spring/服务器端对 Tomcat 的更改(需要许可证 商业用途)

微妙但重要的是 Grunt 正在做什么..

关于spring - 是否可以使用 Spring/Tomcat/Intellij 进行实时更改反馈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22363408/

相关文章:

javascript - Angularjs - $uibModal 提供程序错误

java - 如何在 Spring Boot 中创建 Apache POI Excel View 配置

java - JpaRepository 中的动态实体名称?

javascript - 高级 AngularJS 实时搜索

tomcat - 无法加载 JDBC 驱动程序类 'com.mysql.jdbc.Driver'

jsp - Struts 2 返回 404 不是由 tomcat 错误页面触发的

api - 我什么时候需要使用 tomcat-coyote.jar - Coyote API?

spring - camunda 中的 Receivetask 未按预期工作

java - Spring - Hibernate 使用 FlushMode 提高事务性能

javascript - 如何在 AngularJS 1.x 中对过滤器进行单元测试