如何使用Spring Boot指定BeanNamingStrategy?

Kid*_*rla 6 java spring spring-boot

我想在BeanNamingStrategy使用Spring Boot配置应用程序时指定自定义.默认情况下,Spring Boot使用的MethodNameStrategy是a BeanNamingStrategy.

我想这样做的原因是因为我有抽象的父类,我的消费者将创建它的配置子类.父类中的方法具有彼此相同的名称,因此不会为子类的不同实现进行注册.我的自定义BeanNamingStrategy将配置类的简单名称附加到某些bean名称.

通常在Spring应用程序中,您可以BeanNamingStrategy使用setBeanNamingStrategy方法传递自定义ApplicationContext.但是,如果Spring Boot正在创建ApplicationContext,我该怎么做?

Sea*_*oyd 6

SpringApplicationBuilder有一个方法beanNameGenerator(),可以传入自定义生成器.

有关如何使用Fluent API的信息,请参阅Spring Boot参考中的22.3 Fluent构建器 API.


遗憾的是,这对您没有帮助,因为这仅适用于@Component-style类注释,而不适用于使用此方法@Bean对名称进行硬编码的方法.