解决错误:Consider defining a bean of type ‘xxxrService‘ in your configuration

一、问题描述

    运行 SpringBoot 启动类,报错:
在这里插入图片描述
    可以看到,它是说 WeiXinPayController 中,用到了 OrderService ,但是呢,Spring 扫描不到。

二、解决方法

    其实可以看出来, WeiXinPay 和 Order 分属两个工程,具有各自的功能,在一个工程里调用另一个工程的 service 层,其实是不妥的,如果业务有交叉,可以用 feign 的方式调用 controller 层。
    事已至此,先解决一下这个错误吧。
    看看 SpringBootApplication 源码:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

    可以看到,@ComponentScan ,只能扫描与控制器在同一个包下以及其子包下的 @Component 注解,以及能将指定注解的类自动注册为 Bean 的@Service 、@Controller 和 @ Repository,所以, WeiXinPayController 想识别到 OrderService,需要在 pay 的启动类上使用注解 :

@ComponentScan(basePackages = {"com.changgou.order.service"})
当在Feign调用中出现"Consider defining a bean of type 'xxx' in your configuration"的错误时,这意味着Spring容器无法找到所需的bean解决这个问题的方法有两种: 1. 指定Feign应该扫描的包。可以在启动类上添加`@EnableFeignClients(basePackages = "xxx")`注解,将包路径替换为你实际的包路径。这样Feign将会扫描指定的包来寻找需要的bean。 2. 指定需要加载的Client接口。在启动类上添加`@EnableFeignClients(clients = {xxx.class})`注解,将`xxx`替换为你实际的Client接口。这样Feign将会加载指定的Client接口,以便正确创建需要的bean。 通过以上两种方法之一,你可以解决Feign调用时"Consider defining a bean of type '' in your configuration"的错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [项目启动报错:Consider defining a bean of type ‘xxx.xx.xx.xxService‘ in your configuration.](https://blog.csdn.net/qq_43351889/article/details/123241948)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Consider defining a bean of type ‘cn.itcast.feign.clients.UserClient‘ in your configuration....](https://blog.csdn.net/weixin_43847264/article/details/126269386)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值