springboot + dubbo +mybaits实践

本文分享了作者在尝试整合SpringBoot与Dubbo过程中的经验教训,包括配置兼容问题、容器选择及bean注入方式等问题,并提出了两种解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    写在开头:以前做过一些springboot项目,里面有已经配置好的springboot+mybaits配置,想拿过来直接用。

    准备阶段,先下载了一个dubbo的demo,然后本地搭建了一个简单的dubbo,zk dubboadmin provide consumer都是在本地的,能在admin中看到服务提供者和消费者,哈哈哈,以为这样就可以了。

     坑一,当想将以前的一个springboot改造的时候发现问题了,第一以前没有spring对应的配置文件,只有一个yml文件,现在dubbo中给的是一个xml,好吧想办法再通过applicationcontext加载它吧,然后配置好springboot这样不就兼容了两者了吗,后来各种jar包冲突,头痛。

    坑二,dubbmo的容器有三种,选择那种比较合适呢,springboot自带tomcat的容器,是否也可以用这个呢,答案是可以的,不过我感觉我这边的使用方式不对。后面再研究一下。

    误区,其实启动springboot用的比较多的是注解方式,很多东西都是通过各种注解来说明的比如@Service @Component @RestController 等这类注释,而dubbo是用过配置文件中的 <dubbo:service interface ***>等来实现的,可能是初用dubbo,没有了解其他方式,这是问题来了,加载了bean的时候需要用到springboot启动所扫描的Service服务怎么办能用注解直接使用吗,答案是否定的,因为springboot启动的时候在自己的tomcat中注解实例化的对象,而配置文件中的是用里一个context初始化的bean,这时如果你没有再配置文件中有显示的bean引用或者构造注入,调用的是默认的不带参数的构造函数,从而没有初始化那些注解,从而不能使用boot启动时候的那些bean。这时候有两种方式,第一修改配置文件,显示注入需要用到的bean,二通过参数传递,由于springboot启动后返回了context,可以直接getBean的方式直接获取想要的bean,这样就可以在dubbo中使用springboot启动的那些bean。浅薄理解,我计划实验一下,springboot在注解和配置文件同时存在的情况下spring的初始化情况,或者参考一下网上的整合方案,给朋友们趟一下看看会有哪些问题。实际上我一定要用boot的原因是我不想配置数据库连接的大量配置,我只想用简单的springboot的mapper注解功能,实现数据库访问。

    好了,这篇博文会持续更新,请大家耐心等待。

一点点代码:

public static KeyWordSet bean;
	public static void main(String[] args) {  
        ConfigurableApplicationContext run = SpringApplication.run(Provider.class, args);  
        bean = run.getBean(KeyWordSet.class);
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
        System.out.println(context.getDisplayName() + ": here");
        System.out.println(bean+"start");
        
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值