弹簧覆盖控制器

时间:2013-07-26 07:32:36

标签: spring spring-mvc spring-3

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

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

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

  1. 使用组件扫描程序排除自定义过滤器? (这似乎不那么容易)
  2. 使用xxxxPostProcessor删除一些bean? (如何?)
  3. 任何帮助?

2 个答案:

答案 0 :(得分:0)

如果我的问题得到了解答,

您可以通过将URL更改为特定的实施名称来实现不同的实施

Say Telecom是接口,AirtelImpl和RelianceImpl是控制器然后

您的请求映射

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

通过这种方式,实施流程将有所不同。

答案 1 :(得分:0)

我已按照以下步骤操作:

  1. 创建了自定义注释:@Devoted
  2. 创建了自定义ImportBeanDefinitionRegistrar。迭代已经注册的bean定义,找出`@Devoted @Controller's并删除它们。
  3. 根据请求,我将提供实施细节。