Jfinal热部署问题求教!

jfinal4.9+underflow+idea下:

public void configPlugin(Plugins me) {
    ActiveRecordPlugin arpPlugin = new ActiveRecordPlugin(druidPlugin);
    arpPlugin.setDevMode(config.getBoolean("activeRecord.devMode"));
    arpPlugin.setShowSql(config.getBoolean("activeRecord.showSql"));
    arpPlugin.setDialect(new MysqlDialect());
    arpPlugin.setContainerFactory(new CaseInsensitiveContainerFactory(config.getBoolean("activeRecord.caseInsensitiveContainerFactory")));
    
    me.add(druidPlugin);
    me.add(arpPlugin);
    me.add(new EhCachePlugin());
}

其中arpPlugin.setDevMode(config.getBoolean("activeRecord.devMode"));我在控制台打印出来的也是true,但是修改Java文件时还是需要重启项目,请问这个是怎么回事?


评论区

JFinal

2020-06-11 16:10

IDEA 下开发,详情见:
https://jfinal.com/doc/1-9

spring0563

2020-06-12 08:33

我看了一下,问题依然没有解决,而且我在修改html时也是需要重启项目的,波总能不能出一个官方的在idea下的部署教程!@JFinal

JFinal

2020-06-12 10:52

@spring0563 jfinal enjoy 模版引擎的热加载是独立支持的,只需要配置:
engine.setDevMode(true)

enjoy 的热加载与别的因素无关,只需要上述配置即可

java 代码的热加载,要配置 undertow.devMode=true

还有一种方案是在 IDEA 下使用 jrebel

spring0563

2020-06-12 11:06

我的项目里面是没有engine模板的,我准备用jfinal做前后分离,html等静态资源是直接访问的,但是我现有的项目参考您给出的链接修改后还是需要重启项目的,我的静态资源是放在resources/static这个目录里面的。

JFinal

2020-06-12 11:41

@spring0563 html 等静态资源不存在热加载这一说,本身就是实时生效的

你放在 resources/static 这个目录下面未实时生效,应该是 IDEA 的自动编译未打开,从而修改以后在 target/classes/resources 下面的相应拷贝并未发生变化

这个问题肯定是与 jfinal 无关的,IDEA 默认不开启自动编译,从而造成误解

JFinal

2020-06-12 11:43

补充一下这里的关键:
1:你修改的是 resources/static 下的 html 静态资源
2:web 服务读取的是 target/static 下的 html 静态资源
3:IDEA 没有打开自动编译,造成 web 服务读取到的并不是最新修改后的版本

这个是 IDEA 的特征

spring0563

2020-06-12 12:33

@JFinal 谢谢波总,受教了