我想在使用 Spring Boot 配置我的应用程序时指定自定义 BeanNamingStrategy
。默认情况下,Spring Boot 使用 MethodNameStrategy
,这是一个 BeanNamingStrategy
。
我想这样做的原因是因为我有抽象父类,我的消费者将为其创建配置子类。父类中的方法彼此具有相同的名称,因此不会为子类的不同实现注册。我的自定义 BeanNamingStrategy
会将配置类的简单名称附加到某些 bean 名称。
通常在 Spring 应用程序中,您可以使用 ApplicationContext
的 setBeanNamingStrategy
方法传递自定义 BeanNamingStrategy
。但是,如果 Spring Boot 正在创建 ApplicationContext
,我该怎么做?
最佳答案
SpringApplicationBuilder 有一个方法 beanNameGenerator()
这让您可以传入自定义生成器。
参见 22.3 Fluent builder API在 Spring Boot 引用中了解如何使用流畅的 API。
不幸的是,这对您没有帮助,因为这仅适用于@Component
样式的类注释,不适用于@Bean
方法,其名称为are hard coded。使用 this method .
关于java - 如何使用 Spring Boot 指定 BeanNamingStrategy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079455/