crane4j
crane4j copied to clipboard
ContainerProvider 应当支持根据扩展参数获取容器
现有的 ContainerProvider
只支持根据命名空间字符串获取对应的容器,由于字符串的表示能力有限,导致包括 MyabtisPlusQueryContainerProvider
以及 AssembleEnumAnnotationHandler
所使用的内部提供者都被迫要将各种额外的参数拼接成字符串作为容器的命名空间。
因此,希望 ContainerProvider
允许在调用 getContainer
方法时,传入对象而非字符串作为查询条件,具体的匹配逻辑由 ContainerProvider
与 OperationAnnotationHandler
配合完成。
要实现这个效果,可能需要调整下述组件:
-
AssembleOperation
中的getContainer
应该返回一个Object
对象,同时实现类应该记录ContainerProvider
的名称; -
AbstractOperationAnnotationHandler
中解析容器命名空间的逻辑需要做调整,应当返回一个Object
对象; -
ContainerManager
中根据ContainerProvider
获取容器相关的逻辑也需要调整,当根据提供者获取容器时,第二个参数不再限制为容器的命名空间,并且相关 API 也不再支持通过 “$$” 方式拼接名称去获取容器;