2023-03-20 01:07

有位同学给了一个简单方案,配置日志将其关闭即可:
<Logger name="io.undertow.server.Connectors" level="OFF"></Logger>

2023-03-02 23:25

严格参考俱乐部给的 pom.xml 与 package.xml 文件,其中 package.xml 文件的内容完全不用动,pom.xml 中的 maven-assembly-plugin 配置不要动它

2023-03-02 23:24

@zeroabc 执行 mvn clean package 就可以了,打出的压缩包与可执行的目录在 target 目录下面的以项目名称命令的子目录下面,注意找一下

2023-01-30 22:07

前端的东东不太熟,我们公司用 element ui 做的文件上传直接指定了 action 就行了:

《el-upload
:action="actionUrl"
:headers="headers"
:class="form.businessLicenseFile ? 'hide':''"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-success="handleSuccess"
:on-remove="handleRemove"
accept="image/jpg,image/jpeg,image/png"
:before-upload="beforeUpload"
:file-list="businessLicenseList"

注意看上面的 :action="actionUrl"

其中的 actionUrl 数据如下:
export default {
data() {
return {
actionUrl: process.env.VUE_APP_BASE_API + '/system/upload?type=customer',
....
}
}
}

2023-01-08 16:32

目前,建议做一个 DbExt.java 来扩展出这个功能, 底层依赖一下 Db、Model 中提供的功能

2022-12-10 21:00

@北流家园网 事务不能跨越数据源,如果要跨,建议使用 sharding jdbc 这类第三方中间件

2022-12-10 19:39

我的项目有很多是多数据源的,都是这么来玩的

2022-12-10 19:39

将 Generator.java 复制成多份,每一份对应一个数据源,并配置每一份生成的 MapingKit.java 的文件名,例如:
GenDs1 生成 MappingKitDs1
GenDs2 生成 MappingKitDs2
GenDsn 生成 MappingKitDsn

最后配置的时候:
MappingKitDs1.mapping(arp);
MappingKitDs2.mapping(arp);
MappingKitDsn.mapping(arp);

2022-12-08 21:33

@zzutligang After 后面配置一下 mysql

2022-12-04 16:06

json 字符串转成 map 、list 都很方便,后端用 getRawData() 接收

2022-12-04 16:06

发请求之前先将数据转成 json,然后发到后端再转成对象,不用折腾那些麻烦的,前端用一下: JSON.stringify(...)

前后交互传 json 是大势所趋,非常方便

2022-12-04 13:49

多数据源事务属于分布式事务,jfinal 没有提供支持

你要实现分布式事务,最好是借助第三方中间件,专业的事情交给专业的人,用一用 Sharding JDBC 这类中间件,基本上只需要配置,对于应用来说是透明的

要保障分布式事务的原子性、一致性,不是一般人想象的那样简单,性能代价也比较大

一般可以在业务层想办法解决,例如两个数据源的事务分别提交,前面的事务提交后在数据库留下某种状态信息,根据状态再决定是否决定执行第二个事务,再根据第二个事务的成功与否再决定第一个事务的状态是否要回到原状态(需要业务代码)

上面的方式比较麻烦,还有一个简单办法是,在设计层面将两个事务拆分成两个状态,让其成为业务的流程的两个环节,根据状态可决定下一步可以做什么事情

有关业务流程的表中通常要放一个 state 状态字段

2022-12-01 21:16

还有很多办法,方法一:
通过 JsonRender.gAttrs()、getJsonText() 获取必要数据,参考 JsonRender.buildJsonText() 中的代码去生成 json 来使用,这个会额外消耗性能

方法二:
继承 JsonRender 做一个 MyJsonRender,覆盖其中 buildJsonText() 方法,将方法声明中的 protected 改为 public:
public void buildJsonText() {
super.buildJsonText();
}
然后在拦截器中大致这么用:
if (render instanceof MyJsonRender) {
MyJsonRender mjr = (MyJsonRender)render;
if (getJsonText() == null) {
mjr.builderJsonText();
String json = getJsonText();
}
}

以上的 json 对象就得到了最终的 jsonText() 并且还不影响性能

方法二扩展的 MyJsonRender 可以放在 BaseController 中,通过覆盖父类的 renderJson 来实现,也可以更彻底通过扩展 RenderFactory 来实现切换,具体看下文档或者源代码

2022-12-01 18:21

@杜福忠 这个办法比较有新意,以前没发现有人这么玩过