sofastack / sofa-boot

SOFABoot is a framework that enhances Spring Boot and fully compatible with it, provides readiness check, class isolation, etc.
https://www.sofastack.tech/sofa-boot/docs/Home
Apache License 2.0
4.96k stars 1.26k forks source link

关于ark 包 和 ark biz 的问题请教g #257

Closed iyayu closed 5 years ago

iyayu commented 5 years ago

我官方提供的资料上说这两个都使用 sofa-ark-maven-plugin 插件打包;如果不指定 classifier 参数 打包为 ark 包;虽然官方上也有提到这两个的区别, 但是我还是不清楚什么情况下应该打包成 ark biz;

QilongZhang commented 5 years ago

@iyayu 可以看下这两篇文章

理解 ark biz 可以当成普通jar包依赖被其他应用引入,这样就可以直接合并启动两个应用。

iyayu commented 5 years ago

@QilongZhang 首先感谢您能抽出业余时间帮我耐心解答问题, 您推荐的两篇文章我看过了.

明白了, 应用业务逻辑和其它的第三方包可以打包成 ark biz.

但是在 “SOFABoot 类隔离原理剖析” 这篇文章中 介绍到 Ark Plugin 隔离 和 Ark Biz 隔离. 其中的 Ark Biz 隔离 我不明白主要是隔离什么的.

QilongZhang commented 5 years ago

@iyayu Biz 和 Plugin, Biz 和 Biz 之间是相互类隔离的,隔离类加载,避免类冲突。

iyayu commented 5 years ago

@QilongZhang 谢谢🙏, 非常感谢您的解答:).

iyayu commented 5 years ago

@QilongZhang 不好意思我又有一个问题:( , 我在做笔记的时候 “SOFABoot 类隔离原理剖析” 这篇文章中 针对 Ark Plugin 处理逻辑 中提到

插件优先级只是影响插件的启动顺序,而且也不强制要求每个 Ark Plugin 都要有启动器

Ark Plugin 的启动器是什么?我可以理解成 实现 PluginActivator 接口的一个类吗? :)

QilongZhang commented 5 years ago

@iyayu 对的。

iyayu commented 5 years ago

@QilongZhang 谢谢 :)

iyayu commented 5 years ago

@QilongZhang 抱歉再问一个问题 denyImportPackages 用来配置禁止导入的包, 从自身加载所需要的类, 如果自身没有要加载的类, 会从插件中加载吗?

QilongZhang commented 5 years ago

@iyayu 不会,可以看代码或者写一个demo验证。

iyayu commented 5 years ago

@QilongZhang 好的, 已经在写了 :)