playframework是怎么实现修改代码及时生效的呢?

发布于 2021-11-08 07:36:29 字数 67 浏览 935 评论 12

修改代码即时生效!

编辑 Java 文件,保存,刷新浏览器,即可看到效果!无须编译,部署,重启服务器。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

温柔少女心 2021-11-13 07:00:59

另外,我创建了一个Playframework的中文小站,目的是想大家一起翻译Playframework的文档,然后贡献出来。目前已经翻译了一小部分,剩下的,需要寻找社区的力量一起翻译。小站的网址是:
http://playframework.startup.sh/

参加翻译的人,都会在小站上得到公开,目的是让更多的人知道,你贡献过。有兴趣的人,可以发邮件给我(atell.wu#gmail.com),或到
http://weibo.com/playframework 留言。稍后会开辟一个文档贡献者的页面,计划将文档放到GitHub或Bitbucket,有意向者都可以参与翻译。

孤独患者 2021-11-13 07:00:58

使用热部署。 Play启动jvm时,添加了javaagent的参数的。

以下是我使用ps aux | grep java 看到的命令含有的字符串:

-javaagent:/home/atell/download/play-1.1.1/framework/play.jar
怎言笑 2021-11-13 07:00:58

不好意思 写少了 是: -javaagent:/home/atell/download/play-1.1.1/framework/play.jar -server

筱果果 2021-11-13 07:00:58

-javaagent:/home/atell/download/play-1.1.1/framework/play.jar -server

南汐寒笙箫 2021-11-13 07:00:57

velocity,freemarker等等模板文件,都是基于时间对比的,发现模板比较新的话,从新分析语法树,node节点,当然开启缓存template!与jsp不同的是,

1,jsp编译成class,

2,remove old  class,

3,reload class

基于缓存的template

1,将文本template解析为不同node节点的一个tree,暂且叫template tree

2,remove template tree

3,cache new template tree

冷默言语 2021-11-13 07:00:57

呵呵,你这个问题让我想起来jsp,play中的的类应该与jsp一样的,在第一次请求jsp时,jsp由容器编译成servlet class文件(所以第一次比较慢),并记住当前【文件时间】属性,当下次请求时web容器会检查jsp文件与上次编译时间是否相同,如果不同将重新编译,否则继续使用已编译文件

虽然没看过play,但原理应该差不多

少女情怀诗 2021-11-13 06:58:48

呵呵,你这个问题让我想起来jsp,play中的的类应该与jsp一样的,在第一次请求jsp时,jsp由容器编译成servlet class文件(所以第一次比较慢),并记住当前【文件时间】属性,当下次请求时web容器会检查jsp文件与上次编译时间是否相同,如果不同将重新编译,否则继续使用已编译文件

虽然没看过play,但原理应该差不多

风透绣罗衣 2021-11-13 06:57:34

应该是每个几秒扫描下字节码文件吧!貌似在哪儿看过!

凡尘雨 2021-11-13 06:56:41

play 很有动态语言的特性,好像是在字节码层面做了挺多工作的吧。模板引擎貌似用了 Groovy ,模型中貌似还能自动将 public 的属性转成 getter、setter,更诡异的是可以将 url 变量注入到方法参数。

南汐寒笙箫 2021-11-12 23:19:53

Play 本来就这样啊

噩梦成真你也成魔 2021-11-12 11:50:50

Play 本来就这样啊

各自安好 2021-11-12 11:02:52

自己顶一下。引大家互相讨论。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文