JFinal3.0整合Dubbo

前言

     目前参与的项目是基于JFinal1.9与Dubbo,Zookeeper整合,由于不熟悉Dubbo做什么用的,所以尝试脱离业务,搭一个出来环境出来,试图弄明白其中的条条框框,实现的功能.

    基于最新的JFinal3.0+Dubbo+Zookeeper3.4.8

参考资料

    站在巨人的肩膀上,轻松愉快的搭建工程

    http://git.oschina.net/lianghao2016/JDoc

     https://www.oschina.net/code/snippet_1175852_47421

     https://my.oschina.net/u/1175852/blog/404261

     https://my.oschina.net/u/1175852/blog/404262

     https://my.oschina.net/u/1175852/blog/404264

开工

    基本流程参看糊搞大神的JFinalDubboDemo.doc

    说说在期间遇到的问题.

1.SpringPlugin   

    自JFinal1.9后去除了SpringPlugin,这里从1.9里把3个java文件copy过来,修改IocInterceptor中代码.下图示,改完后JFinal3.0就能使用SpringPlugin了.

blob.png

2.multicast注册中心

blob.png

    也许是年久失修的关系,multicast注册中心配置后,provider端一直启动不能,

blob.png

    换成Zookeeper后,顺利启动,这里provider端与consumer端的注册中心都要替换掉.

3.Controller.getModel(class)问题

    重现了此问题:在Demo运行起来后,对Blog进行创建和修改操作时出现了“Html 500”的错误.

 

 

    文档中是使用TableInitKit 在consumer端手动对模型初始化, 考虑到每个model都要手动操作,选择了跟provider端一样启动的时候把模型绑定,问题解决.blob.png

上面这种做法是错误的!!,

参考文章后,修改如下

https://my.oschina.net/u/1175852/blog/404262

https://my.oschina.net/aixiaohua/blog/610516

1.在前人的基础上,完善了一下代码生成器,在生成model的时候,同时生成生成绑定model的方法.

blob.png

调用端在afterJFinalStart中调用model绑定方法即可

blob.png

 

Api的pom.xml中设置忽略掉两个_generator类,避免泄露一些关键信息

 

4.spring.xml存放路径

    从resources下加载,跟a_little_config.txt等文件放一起

 

new SpringPlugin("classpath:applicationContext.xml")

 

blob.png

5.model生成

    使用_JFinalDemoGenerator来生成model的代码,所有 sql 与业务逻辑写在 Service 中,不要修改自动生成的Model代码.

    ex:1.9时代用jfinal-ext来生成代码,然后复制粘贴进去的方式跟不上时代了,能抛弃赶紧抛弃掉..

 

6.使用jetty插件启动

正常启动后如图示    

blob.png

blob.png

一顿CURD操作后,Consumer端控制台日志输出

blob.png

provider端配置了log4jdbc,控制台输出调用的sql

blob.png

(ex:jfinal的默认输出sql是没有替换掉?占位符的,sql跟踪有点吃力,log4jdbc很好的补充了这点)

集群

    JDK1.8下的dubbo-admin.2.5.4.war需要重新编译,已上传到git

    一个消费者,多个提供者   blob.png

blob.png

 

项目链接

      git地址

      Mac下使用Idea通过Main启动项目

 

转载于:https://my.oschina.net/u/3409256/blog/877406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值