git 地址: https://github.com/stateIs0/exp
为了解决公司的业务痛点, 这段时间一直在搞这个东西。看看开源出来能不能帮到其他人,有用的就点个 star ⭐️⭐️⭐️⭐️⭐️,哈哈
1
zhady009 2023-08-15 22:42:12 +08:00 via iPhone
可以看看 PF4J ?
|
2
v2e0xAdmin2 OP @zhady009 #1 嗯嗯,写完之后才看到这个,看起来类似,但是又有点区别
|
3
v2e0xAdmin2 OP 大概的场景:
B 端大客户对业务进行定制, 需要对主代码扩展,传统做法是 git 拉取分支,现在基于扩展点的方式进行定制, 可热插拔,需要多个程序可分可合, 支持将多个 springboot 应用合并部署, 或拆开部署,扩展点类似 swagger 文档 doc, 用于类插件系统管理平台进行展示, 详细的博客地址: http://thinkinjava.cn/2023/08/15/2023/exp/ |
4
muyiluop 2023-08-16 09:06:44 +08:00
这个我还真能用上,之前搞物联网设备接入,设备种类太多,协议各种各样,也是搞了一个简单的热插拔的插件,但是解决不了一个问题,就是怎么防恶意代码,我们这支持三方开发,如果写个 System.exit() 或者其他会出现导致程序崩溃的代码,比如 jni 调用第三方库出现个什么内存异常啥的,程序就容易出问题,只能每个三方的不信任插件单独运行。请教下你是怎么处理这种情况的呢
|
5
v2e0xAdmin2 OP @muyiluop 用 groovy
|
6
v2e0xAdmin2 OP @muyiluop 详细的说,就是把底层的 classloader 换成 groovy 引擎,这个可以支持代码检查,比如 system-exit
|
7
iosyyy 2023-08-16 09:58:01 +08:00
看着侵入性好像有点强? 赶紧不算实用
|
8
v2e0xAdmin2 OP @iosyyy #7 嗯,如果考虑少点侵入性的话,就需要非常多的配置来描述,比如 n 年前的 spring xml ,是个取舍问题;另外侵入性,这个框架都是基于 spi 和 Interface 来编程的,随时可替换成自己的的 spi 实现(如果认可这个 api 的话)
|
9
zxCoder 2023-09-24 11:35:36 +08:00
这个能结合 spring 吗?
|
10
v2e0xAdmin2 OP @zxCoder #9 必须可以
|
11
zxCoder 2023-09-24 13:23:53 +08:00
|
12
v2e0xAdmin2 OP @zxCoder #11 完全可以,你的场景就是我们的场景
|
13
v2e0xAdmin2 OP @zxCoder #11 可以提 issue 或者 钉钉群
|
14
zxCoder 2023-09-24 14:24:18 +08:00
支持 springboot3 吗
|
15
zxCoder 2023-09-24 14:33:06 +08:00
没找到相关的依赖包
|
16
v2e0xAdmin2 OP @zxCoder #14 支持 springboot 3 ,在另外一个 project 里; https://github.com/stateIs0/open-exp-springboot3
|
17
zxCoder 2023-09-24 14:55:28 +08:00
为啥没放 maven 上,方便点
|
18
v2e0xAdmin2 OP @zxCoder #17 用的人还不多,就没放 maven 了,可以考虑放 maven 仓库
|
19
zxCoder 2023-09-24 15:46:13 +08:00
@v2e0xAdmin2 可以搞一个,刚刚想在我的项目中测试,但是用不了,还得自己编译到本地仓库
|
20
zerofancy 2023-12-16 03:20:06 +08:00 via Android
@muyiluop 我有个想法,插件用自定义 classloader 加载,是否可以破坏双亲委派,给 System 类搞个 proxy
|
21
okey 212 天前
老哥,还有交流群吗,想了解下,项目里分享的群过期了
|
22
v2e0xAdmin2 OP @okey #21
|