![](/img/trans.png)
[英]How do I specify multiple templateLoaderPaths for Freemarker in Spring Boot?
[英]How do I specify a BeanNamingStrategy with Spring Boot?
我想在使用 Spring Boot 配置我的應用程序時指定一個自定義BeanNamingStrategy
。 默認情況下,Spring Boot 使用MethodNameStrategy
,它是一個BeanNamingStrategy
。
我想這樣做的原因是因為我有抽象的父類,我的消費者將為其創建配置子類。 父類中的方法彼此具有相同的名稱,因此不會為子類的不同實現注冊。 我的自定義BeanNamingStrategy
會將配置類的簡單名稱附加到某些 bean 名稱。
通常在 Spring 應用程序中,您可以使用ApplicationContext
的setBeanNamingStrategy
方法傳遞自定義BeanNamingStrategy
。 但是,如果 Spring Boot 正在創建ApplicationContext
,我該怎么做?
SpringApplicationBuilder 有一個方法beanNameGenerator()
可以讓你傳入一個自定義生成器。
有關如何使用 fluent API,請參閱 Spring Boot 參考中的22.3 Fluent builder API。
不幸的是,這對您沒有幫助,因為這僅適用於@Component
樣式的類注釋,而不適用於使用此方法對其名稱進行硬編碼的@Bean
方法。
您還可以在主 Spring Boot 應用程序類上使用@ComponentScan(nameGenerator = ...)
注釋:
@SpringBootApplication
@ComponentScan(nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.