0
我正在使用Spring MVC控制器,并且我想在开发过程中提供一些额外的请求映射方法。我可以做到这一点使用Spring配置文件:当配置文件不存在时,默认的Spring bean
@Controller
@Profile("!dev")
public class DefaultController {
}
@Controller
@Profile("dev")
public class DevController extends DefaultController {
}
但理想情况下,我宁愿不污染生产类开发‘配置文件注释指的是代码’。
我想也许这是可能的使用主注释,但我不能得到它的工作。 This post似乎是说,这应该工作:
@Controller
public class DefaultController {
}
@Controller
@Profile("dev")
@Primary
public class DevController extends DefaultController {
}
但是,当我做到这一点,春天试图当它在“开发”的个人资料启动时加载两个控制器和失败,
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0'
...
There is already 'defaultController' bean method
我想做什么?如果是这样,我该怎么做?
是的,这有效。我已经从'DefaultController'获取了所有的代码,并将其放入'AbstractController'中。 'DefaultController'和'DevController'现在都扩展了'AbstractController'。但它仍然不是很干净。也许我只是将'DefaultController'中的代码复制并粘贴到'DevController'中,或者仅仅使用我的原始'@Profile(“!dev”)'。 –
好的,谢谢。请将此问题标记为已回答。 –