Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪些Java/Scala或.NET web框架支持修改源代码并立即运行工作流e.i.,而无需长时间的重新绑定/重新部署过程?_C#_Java_Scala_Web Frameworks - Fatal编程技术网

C# 哪些Java/Scala或.NET web框架支持修改源代码并立即运行工作流e.i.,而无需长时间的重新绑定/重新部署过程?

C# 哪些Java/Scala或.NET web框架支持修改源代码并立即运行工作流e.i.,而无需长时间的重新绑定/重新部署过程?,c#,java,scala,web-frameworks,C#,Java,Scala,Web Frameworks,就我所见,Ruby或Python等动态语言相对于Java/Scala/C等的主要优势在于“热”地将对源代码的更改应用到正在运行的应用程序中。支持相同工作流的JVM或.NET框架是什么?动态地对配置和源代码应用更改?他们还可以监视自定义配置的更改并通知应用程序吗 注意:JVM/.NET上的动态语言框架(如Grails或Compojure)不在本文的范围之内 编辑:我的意思不仅是修改方法体,还包括添加/删除方法、字段和类。完成编辑和观察浏览器中的更改之间的平均时间是多少 好的解决方案: Apac

就我所见,Ruby或Python等动态语言相对于Java/Scala/C等的主要优势在于“热”地将对源代码的更改应用到正在运行的应用程序中。支持相同工作流的JVM或.NET框架是什么?动态地对配置和源代码应用更改?他们还可以监视自定义配置的更改并通知应用程序吗

注意:JVM/.NET上的动态语言框架(如Grails或Compojure)不在本文的范围之内

编辑:我的意思不仅是修改方法体,还包括添加/删除方法、字段和类。完成编辑和观察浏览器中的更改之间的平均时间是多少

好的解决方案


Apache的Tomcat Java servlet服务器有一个“监视”资源的配置选项。如果监视的servlet或web应用程序被更改(即,新代码被上传到服务器),Tomcat会自动重新加载它


根据我的经验,当与其他高级功能(例如,用户目录)混合使用时,此功能会有一定程度的损坏,但在其他方面会像广告宣传的那样工作。

您不需要框架。当您从eclipse运行Java应用程序并修改源代码时,eclipse将尝试将新代码修补到正在运行的VM中。即使被替换的方法当前正在执行(在这种情况下,方法执行将在方法开始时重新开始),这种方法也可以工作。某些更改不能热部署,例如删除公共方法或更改子类型关系


当然,如果应用程序缓存内容(例如,在启动时设置读取),这些缓存将不会重新计算,尽管您可能会在调试器中手动调用解析方法。

好问题!在java世界中:

在所有java框架中,JVM热交换功能允许调试器进行一些适当的更改,但是您受到一些限制,例如:您不能更改类层次结构、添加方法等

有一个商业产品,它宣传自己允许你动态地修改几乎任何代码——我自己从来没能让它正常工作过,但你可能会有更好的运气

除此之外,我知道的dev模式允许在不需要重新编译的情况下进行任意更改,我不认为GWT是直接编写javascript的可行竞争对手,如果GWT没有该功能的话。但是,请记住,GWT不是传统的web框架,它都在客户端运行


最后,在服务器端还有一个框架,当您刷新浏览器时,它还会自动重新加载带有任意更改的java类

我使用with没有问题。您只需正确配置它,在一个终端中启动web服务器,并使用
maven scala::cc
保留另一个终端。这将自动重新编译所有内容(如果使用配置,则所有必要的内容),JRebel将立即在web服务器上提供更改。

1。对于足够大的项目,从您结束Java/Scala代码的编辑到您可以在浏览器中观察应用的更改需要多长时间(5秒、1分钟、30分钟)?2.可以添加/删除类/字段/方法吗?3.申请的状态是否会被保留?4.我当前在浏览器中的会话是否继续?1。显然,它需要刷新客户端。重新加载时间本身取决于更新的大小——从单个servlet到整个应用程序。2.我们谈论的是servlet——客户端不观察类、字段、方法等。任何Java类都可以被替换。这取决于Tomcat,我不确定。它是否支持向现有类添加新类、字段或方法?2.对于大型项目,从完成代码编辑到观察浏览器中的更改需要多长时间?谢谢!今天我遇到了Play框架,想知道是否还有其他具有此功能的框架。