如何保证spring容器中只有一个某一个接口类型的单例实现类?
现有个定制接口类型: Switcher
,
自己写的自动配置中, 会注入默认的一个 SwitcherImpl
实现类.
别的地方引用这个模块时, 也可以定制一个 Switcher
覆盖默认的.
这样就需要保证, 整个 Spring 容器中, 只能存在一个 Switcher
接口类型的实现类.
请问, 这个改怎么保证?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
@ConditionalOnMissingBean
即可不使用默认配置的项目手动创建自定义的bean即可,由于自动配置加了
@ConditionalOnMissingBean
,spring-boot检测到BeanFactory
内存在Switcher
类的Bean后便不会再创建默认的bean如果非默认的bean也是自动配置通过自动配置注册的,则需要使用注解
AutoConfigureBefore
保证它先于默认bean的自动配置类执行