1

我为我的客户提供了一个高度可定制的应用程序,它完全独立工作。但是如果我的客户想要覆盖任何控制器,我想用他们的替换我的实现。然而,仅仅覆盖控制器会导致映射的模糊定义。

我一直在使用组件扫描来加载 bean。

我想到的潜在解决方案是:

  1. 使用通过自定义过滤器排除的组件扫描器?(这似乎并不容易)
  2. 使用 xxxxPostProcessor 删除一些 bean?(如何?)

有什么帮助吗?

4

2 回答 2

0

如果我正确地回答了你的问题,

您可以通过将 URL 更改为特定的实施名称来区分实施

假设 Telecom 是接口,AirtelImpl 和 RelianceImpl 是控制器,那么

您的请求映射

@RequestMapping(value= "/airtel/doBilling")
@RequestMapping(value= "/reliance/doBilling")

这样,实施流程就会有所不同。

于 2013-07-26T07:39:12.553 回答
0

我已按照以下步骤操作:

  1. 创建了一个自定义注释:@Devoted
  2. 创建了一个自定义ImportBeanDefinitionRegistrar. 迭代已注册的 bean 定义以找出 `@Devoted @Controller's 并删除它们。

根据请求,我将提供实施细节。

于 2013-07-26T12:31:58.813 回答