java代码扩展点 java增加代码( 二 )


4、SPI的实现类必须携带一个不带参数的构造方法;
扩展点(ExtensionPoint)必须通过接口申明,扩展实现(Extension)是通过Annotation的方式标注的 , Extension里面使用BizCode和TenantId两个属性用来标识身份,
框架的Bootstrap类会在Spring启动的时候做类扫描,进行Extension注册,在Runtime的时候 , 通过TenantContext来选择要使用的Extension 。TenantContext是通过Interceptor在调用业务逻辑之前进行初始化的 。整个过程如下图所示:
扩展点实现路由
比如在一个CRM系统里,客户要添加联系人Contact是一个 , 但是在添加联系人之前,我们要判断这个Contact是不是已经存在了 , 如果存在那么就不能添加了 。不过在一个支持多业务的系统里面,可能每个业务的冲突检查都不一样,这是一个典型的可以扩展的场景 。
那么在SOFA框架中,我们可以这样去做 。
2、实现业务的扩展实现
3、在领域实体中调用扩展实现
cola扩展点的缺陷:
扩展点必须以ExtPt结尾 , 通过ExtPt明显标识这是一个扩展点,扩展点实现类以Ext结尾
用在扩展点实现类上,使用该注解 , 会将实现类注入到spring容器中
1、基于Strategy Pattern的扩展,没有找到一个很好的固化到框架中的方法
2、使用Strategy Pattern,没有规范的限制,编码相对随意
【java代码扩展点 java增加代码】关于java代码扩展点和java增加代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读