当前位置: 首页 > 知识库问答 >
问题:

Spring Boot:不包括一些自动配置的bean

诸葛品
2023-03-14

我有一个使用Spring-Kafka的Spring boot项目。在这个项目中,我构建了一些封装spring-kafka bean的事件驱动组件(即KafkaTemplate和ConcurrentKafkaListenerContainer)。我想让这个项目成为一个可重用的库accross一组Spring Boot应用程序。但是,当我从一个spring boot应用程序向这个库添加依赖项时,在应用程序启动时会出现一个错误:

APPLICATION FAILED TO START


Description:

Parameter 1 of method kafkaListenerContainerFactory in org.springframework.boot.autoconfigure.kafka.KafkaAnnotationDrivenConfiguration required a bean of type 'org.springframework.kafka.core.ConsumerFactory' that could not be found.
    - Bean method 'kafkaConsumerFactory' in 'KafkaAutoConfiguration' not loaded because @ConditionalOnMissingBean (types: org.springframework.kafka.core.ConsumerFactory; SearchStrategy: all) found bean 'kafkaConsumerFactory'


Action:

Consider revisiting the conditions above or defining a bean of type 'org.springframework.kafka.core.ConsumerFactory' in your configuration.

因为我需要autowire一个ConsumerFactory (而不是ConsumerFactory ),所以我在一个配置类中创建这个bean,这个配置类用@enableConfigurationProperties(kafkaProperties.class)注释

我尝试将@enableAutoConfiguration(exclude=kafkautoConfiguration.class)放入我的库中,但这并不能阻止依赖于我的库的应用程序触发库中排除的spring-kafka自动配置。

我如何指定我不希望在我的库中以及依赖于该库的任何应用程序中自动配置某些bean(KafkaAutoConfiguration和KafkaAnnotationDrivenConfiguration)?

共有1个答案

子车飞鹏
2023-03-14

我相信依赖于库的应用程序本身将不得不从它们的自动配置中排除这些类。

 类似资料:
  • 4.1 根据条件的自动配置 @conditional是基于条件的自动配置,一般配合Condition接口一起使用,只有接口实现类返回true,才装配,否则不装配. 用实现了Condition接口的类传入@Conditional中 @Conditional可以标记在配置类的方法中,也可以标记在配置类上.标记的位置不同,作用域不同. @Conditional可以传入多个实现了condition接口的类

  • 本机Spring Boot自动配置(例如one)也可以检测主类中声明的bean(例如注释的方法)。 如何对主类中声明的bean进行正确的bean检测? 编辑

  • 我有一个简单的SpringBoot应用程序,我想使用AutoConfiguration来配置Tomcat jdbc池数据源。 我正在使用这些Spring依赖项: 以下是我的 application.yml 文件中的数据源属性: 我确定正在加载属性,因为应用程序正在获取其他值。 我在配置文件中将 bean 定义为: 我将数据源注入到我的DAO中,如下所示: 如果我在getDataSource()方法

  • 包括和配置模块 某些模块只能用于特定功能。 pap模块就是这样,仅用于身份验证。 相反,sql模块可用于授权,会话检查以及记帐。 这完全取决于模块作者所包含的功能。 sql模块(rlm_sql.so)使用子模块。 这创建了一个抽象层。 根据主sql模块的配置方式,它将使用特定的子模块与某种类型的数据库进行交互。 子模块可用于连接MySQL(rml_sql_mysql.so),PostgreSQL(

  • 本文向大家介绍浅谈springboot自动配置原理,包括了浅谈springboot自动配置原理的使用技巧和注意事项,需要的朋友参考一下 从main函数说起 一切的开始要从SpringbootApplication注解说起。 其中最重要的就是EnableAutoConfiguration注解,开启自动配置。 通过Import注解导入AutoConfigurationImportSelector。在这

  • 我们有一个这样的项目 公共-模块src-Spring引导工作者-模块 在工作模块中,我们build.gradle这样配置 当我运行任务法特加尔sqlserver: mssql-jdbc丢失时。我试图在{configurations.compile.collect{it.is目录()的这部分代码中打印?it: zipTree(it)}}和“它”从未引用到sqlserver jdbc jar。 由于w