【问题标题】:How does @Autowired work with parameterized types that are not initialized?@Autowired 如何处理未初始化的参数化类型?
【发布时间】:2019-04-18 15:51:16
【问题描述】:

我正在查看的示例是 KafkaTemplate。

KafkaTemplate 自动装配为 KafkaTemplate。 我正在使用的配置创建了一个 ProducerFactory。 KafkaTemplate 的两个构造函数都需要使用这种工厂。

我想猜测自动装配的类的任何新实例都在使用 Class.isAssignableFrom(Class) 来找到创建参数化实例的适当依赖项。

注意:引发调查的最初原因是 KafkfaTemplate 和 KafkaTemplate(无类型)中的自动装配之间的行为变化。

这个假设正确吗? 如果是这样,设计类似配置的最佳方法是什么? 是否有理由使用 Kafka 的实现而不是使用接口“FactoryBean”?

【问题讨论】:

    标签: spring dependency-injection


    【解决方案1】:

    注意Autowired有required属性,你可以用bean来标记为required

    必填 声明是否需要带注解的依赖。

    @Autowired(required=true)
    KafkaTemplate kafkaTemplate
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-25
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 2013-05-04
      • 2022-08-19
      • 1970-01-01
      相关资源
      最近更新 更多