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」)'。 –
好的,謝謝。請將此問題標記爲已回答。 –