[英]How to use a spring profile bean in another bean with default profile?
[英]Default Spring bean when profile is not present
我正在使用Spring MVC控制器,我想在開發過程中提供一些額外的請求映射方法。 我可以使用Spring配置文件執行此操作:
@Controller
@Profile("!dev")
public class DefaultController {
}
@Controller
@Profile("dev")
public class DevController extends DefaultController {
}
但理想情況下,我不希望通過引用“ dev”配置文件的注釋來污染生產類的代碼。
我認為使用Primary注釋可能是可行的,但我無法使其正常工作。 這篇文章似乎說這應該工作:
@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
我想做的事可能嗎? 如果是這樣,我該怎么辦?
這里的問題是您的類DevController
從DefaultController
繼承。 將課程分開。 即使內容相同,也不要使用DefaultController
擴展DevController
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.