2013-07-26 46 views
1

我向我的客户提供了一个高度可定制的应用程序,它完全由自己完成。但是如果我的客户想要覆盖任何控制器,我想用他们的实现替换我的实现。然而,只是覆盖控制器会导致映射的模糊定义。弹簧覆盖控制器

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

的潜在解决方案来到我的脑海里有:

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

任何帮助吗?

+0

这确实取决于他们想要做什么,但我会为他们提供在服务级别添加/交换逻辑而不是更改控制器的功能。 – soulcheck

回答

0

我按照下列步骤操作:

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

根据要求我会提供实施细节。

0

如果我得到你的问题正确,

您可以通过更改URL到特定的实现名称有所不同,实施

说电信接口和AirtelImpl和RelianceImpl是控制器,然后

您的请求映射

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

这样,执行流程会有所不同。