依赖扩展
当平台的引用的功能无法满足项目中的需求时,可以通过扩展的方式来实现。
后台的扩展
后台针对一些模块是支持扩展的(理论上所有模块都可以扩展,只是针对平台底层的一些模块,扩展有一定风险), 平台对于需要扩展的模块,一般都提供了源代码,源代码以springboot starter包的形式提供,会统一放到外网私服中, 当你在本地引入一个依赖时,相应的source代码也是可以下载的,跟你下载maven中央仓的源代码是一样的道理, 下载后,可以阅读此模块中的相应代码,从而进行二次扩展。
平台提供的扩展模块
目前平台提供的扩展模块有:
incloud-base-dependency-mdm
incloud-product-portal-starter
会在后续的版本中,提供更多的扩展模块,敬请期待。
扩展模块的使用
以incloud-base-dependency-mdm为例,此模块是对mdm的扩展,首先下载相应源码。 可以先在依赖中找到mdm模块,然后找到任意一个类,如下图所示:

然后点击 Download Sources,下载源码,下载后,可以在本地的maven仓库中找到相应的源码包。 这样,就可以在本地调试、阅读源代码,如果想覆盖某一个类也变得简单。
由于是spring容器来管理这些bean,所以,如果想覆盖某一个类,只需要在自己的项目中,定义一个同名的类即可, 提供的bean名称与原bean名称一样,spring容器会自动覆盖原bean。当然,在某些代码下,可能需要使用@Primary注解,或者使用同样包名的情况。 这样的话,最好按同包名的方式来覆盖。
在service的实现层或controller层,会更方便一些,你甚至可以直接继承原来的类,然后覆盖相应的方法即可。
总之,你可以像正常使用spring的bean一样,来覆盖、重写相应的bean来达到扩展的目的。
前端的扩展
前端是通过pnpm+vite+vue3+ts构建的一个vue项目一。 因此,你可以在此基础上任意扩展所需的第三方组件,通过pnpm命令进行所需扩展。