本系列文章中所有的设定与范例程序码都可以在 Github 上的范例专案 zkquickstart 找到,有些细节就交给原始码来说明更清楚。
在使用 zk 开发时,我推荐大家一个可以快速启动、验证结果的环境设定。本章节我只使用我熟悉的 Maven, Intellij IDEA 示范,使用其他工具的人,只要了解原理,你应该可以在你熟悉的工具找到对应的设定方法。
这个免费的 JDK 可以自动侦测 java class 的变动,然後自动重新载入新编译过的 class 档到 JVM,在开发过可以省去重启 java 应用程序服务器,减少等待时间。
在 IntelliJ IDEA 中设定 Maven Runner 加上参数:
-XX:HotswapAgent=core
设定完後,需要以 debug 模式启动服务器。每次我在 IntelliJ 中修改 Java 程序码、重新编译 java 档後(cmd+shift+F9),我就可以看到以下讯息:
代表新的 class 已经已经被载入 JVM,我只要重载页面就可以执行新的程序码,相当方便不用忙着重启。
撰写 zul 完後最需要的是看到浏览器绘制的页面结果,如果这时候你需要打包、部署、启动应用程序服务器的话,这个程序做个10 次就会觉得很烦了,而且也很耗时。推荐各位使用 maven jetty plugin,优点是启动速度快,无需打包、部署程序,直接读取既有的 maven 专案目录中的档案来运作应用程序,很适合作为开发时期的轻量应用程序服务器,可以缩短「修改、测试」每个迭代时间。
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.43.v20210629</version>
</plugin>
</plugins>
</build>
在 pom.xml 中设定完後,要在 intelliJ 中设定 run configuration,设定 goal 为:
jetty:run
启动 jetty 後,如果是范例专案,访问网址
http://localhost:8080/zkquickstart/
就可以看到范例专案首页
结合以上两个设定,每次修改 java 或是 zul 你都不需要重启服务器,即便遇到有少数 hotswap 不能自动载入 class 的情形,重启服务器的时间也只需几秒钟。
因为 ZK jar 都内含 web-fragment.xml,其中已经包含必要的 ZK 设定,使用支援 web fragment 的服务器可以省去在 web.xml 设定 ZK servlet等的步骤。如需要手动设定请参考 web.xml for Servlet 2.4。
<<: 【心得】你今天种菜了吗? grid之路-grid的使用(1)
今天是第二天!!我有记得发文,好耶~~那就直接来看看今天的内容吧~!(好突然) 个人认为在学习新技术...
今天要来介绍的是.reg文件的写法,要实作前请记得先做好备份喔! 这是当作给自己最後的作业,对登录档...
今天就是 Debug 总集篇, 前面都是用猴子自己瞎掰设计的 Code Stream 来验证, 这次...
经过了这段时间的练习与学习,相信大家应该越来越能体会 Angular 表单的强大与便利。 不过既然...
延续昨天 今天从首页开始下手 我的首页想放入科内同仁的文章(类似ptt部落格的感觉) 跟之前一样去v...