gpt4 book ai didi

java - 配置文件不存在时的默认 Spring bean

转载 作者:行者123 更新时间:2023-12-01 11:25:33 30 4
gpt4 key购买 nike

我正在使用 Spring MVC Controller ,并且我想在开发过程中提供一些额外的请求映射方法。我可以使用 Spring 配置文件来做到这一点:

@Controller
@Profile("!dev")
public class DefaultController {

}

@Controller
@Profile("dev")
public class DevController extends DefaultController {

}

但理想情况下,我不想用引用“dev”配置文件的注释污染生产类的代码。

我认为也许可以使用主要注释,但我无法让它工作。 This post似乎说这应该有效:

@Controller
public class DefaultController {

}

@Controller
@Profile("dev")
@Primary
public class DevController extends DefaultController {

}

但是当我这样做时,Spring 在“dev”配置文件下启动时尝试加载两个 Controller ,并失败

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

我想做的事情可能吗?如果可以,我该怎么做?

最佳答案

这里的问题是您的类 DevController 继承自 DefaultController。将类(class)分开。即使内容相同,也不要使用 DefaultController 扩展 DevController

关于java - 配置文件不存在时的默认 Spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30833738/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com