- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Spring 中是否有任何注释/技巧将 @Configuration @Bean 标记为只能在严格限定的 @Autowired 上注入(inject)?
我希望我的 bean 以一种只有那些专门调用它的 @Qualifer 才能注入(inject)它的方式进行限定。它确实是一种机制,用于控制在哪里能够 Autowiring ,没有歧义,也没有根据上下文中的可用 bean 做出任意决定。
因此,如果我没有主动将注入(inject)标记为预期的,我的 bean 将永远不会被 Autowiring 为我无法控制的副作用
最佳答案
您可以使用@Conditional 注解来控制bean 的创建。
此外,如果您需要真正控制使用 bean,您可以创建一些注释,如 @ConroledByQualifer,并使用此注释代替标准 spring 组件注释或一个扩展(如服务、存储库 ....)。所以 spring 无法为 Autowiring 处理它,因为人们不知道如何处理它。
您需要添加将与@ConroledByQualifer 一起使用的自定义BeanPostProcessor - 创建它并注入(inject)。因此,您的自定义 bean 将仅由 BeanPostProcessor 处理 @ConroledByQualifer 而不是自定义 spring BeanPostProcessors。
关于java - 限制从 bean 定义注入(inject),而不是从 Autowiring 端注入(inject)(bean 不可隐式注入(inject)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081170/
我是一名优秀的程序员,十分优秀!