springboot + dubbo +mybaits实践

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zouheliang/article/details/80712558

    写在开头:以前做过一些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");
        
    }  

猜你喜欢

转载自blog.csdn.net/zouheliang/article/details/80712558
今日推荐