我正在使用Spring MVC控制器,我想在开发过程中提供一些额外的请求映射方法。我可以使用Spring配置文件来做到这一点:
@Controller
@Profile("!dev")
public class DefaultController {
}
@Controller
@Profile("dev")
public class DevController extends DefaultController {
}
但理想情况下,我宁愿不使用引用'dev'配置文件的注释来污染生产类的代码。
我想也许可以使用Primary注释,但我无法让它工作。 This post似乎说这应该有效:
@Controller
public class DefaultController {
}
@Controller
@Profile("dev")
@Primary
public class DevController extends DefaultController {
}
但是当我这样做时,Spring尝试在“dev”配置文件下启动时加载两个控制器,并且
失败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
我想做的是什么?如果是这样,我该怎么做?
答案 0 :(得分:1)
此处的问题是,您的班级DevController
继承自DefaultController
。保持课程分开。即使内容相同,也不要使用DevController
延长DefaultController
。