Spring-boot插件式开发:插件不自动生成bean报错

Spring boot plugin framework 插件不自动生成bean报错

文档地址

https://gitee.com/starblues/springboot-plugin-framework-parent/wikis/pages

报错:

在这里插入图片描述最近在使用上述spring boot 插件式开发软件时,做好新功能插件时,报出不能创建bean的错误:

10:35:58.621 [main] WARN  c.g.s.f.SpringBeanRegister - [register,71] - Error creating bean with name 'dataUploadTask@Timed-task-plugin': Unsatisfied dependency expressed through field 'hotelPluginService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mybatis.plugin1.service.HotelPluginCallService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

错误原因:

在开发这个插件的时候,这个插件里有来自其他插件的数据,按照文档的要求,在本插件中创建了结构做Caller接收数据

@Caller("hotelPluginService")
public interface HotelPluginCallService {

    @Caller.Method("userOffline")
    public List<UserOffline> selectUserOfflineList(UserOffline userOffline);

    @Caller.Method("userOnline")
    public List<UserOnline> selectUserOnlineList(UserOnline userOnline);
}

在数据来源的插件中创建类做Supplier发送数据

@Supplier("hotelPluginService")
public class HotelPluginService {
	@Autowired
    IUserOfflineService userOfflineService;

    @Autowired
    IUserOnlineService userOnlineService;
    
    @Supplier.Method("userOffline")
    public List<UserOffline> selectUserOfflineList(UserOffline userOffline){
        return userOfflineService.selectUserOfflineList(userOffline);
    }
    
    @Supplier.Method("userOnline")
    public List<UserOnline> selectUserOnlineList(UserOnline userOnline) { return userOnlineService.selectUserOnlineList(userOnline); }
}

在本插件中通过caller接口获取数据

  @Autowired
  HotelPluginCallService hotelPluginService;

根据报错,后来我发现实际上这个插件已经成功加载bean,可仍然报错,我去掉了@Autowired标签后,这个报错就消失了,可是后来发现没有标签后虽然不报创建bean失败,但是数据获取不到。

处理方法

忽略创建bean失败的报错,虽然他在报bean创建失败,但是在后来测试中发现,插件已经成功创建bean了,而且带着@Autowired标签数据才能正常传输,该报错不影响正常功能。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值