Jfinal整合dubbo,zookeeper作为注册中心,使用spring ioc容器注入service

 原理:

我们普通的单体jfinal项目是利用spring将service注入controller,现在我们要实现的目标是将service层剥离出来,方便统一调用,那么,分开来的controller怎么调用service呢,就需要用到最近特别火的远程调用(rpc)框架dubbo。那我们的单体应用就至少分成了两个应用,服务提供者和服务调用者。

分层:

公共api应用,将model层,和service抽象层等服务提供者和服务调用者都需要使用的api提出来,方便两者引用。采用,maven搭建项目,项目类型为jar。可以在pom文件中把共同需要引入的依赖一同引入。例如,jfinal依赖,spring依赖,dubbo依赖,zookeeper,zkClient依赖

服务提供者应用,maven项目,首先引入公共api应用,在这个应用中,我们只需要写service的实现impl就可以,在这个应用中,service的实现要与数据库交互,要把dao注入到impl中,编写操作数据库的代码。并要把服务实现注册到zookeeper的注册中心,以方便服务调用者调用。应用只要能开启spring ioc容器将服务接口暴露就可以,不一定要在servlet容器运行。

服务调用者应用,maven项目,收先引入公共api应用,这个应用要在servlet容器中运行,因为这里我们编写的是controller层,jsp也可以在这个应用中,主要是不需要连接数据库,连库的代码是由服务提供者编写实现,我们只需要在controller层注入service就可以,编写了zookeeper注册中心的相关配置,当spring ioc 容器进行controller注入的时候就会把服务调用者应用中的service的实现注入进来,这就完成了远程调用(rpc)。

这里只是简单描述远程调用的基本原理,至于zookeeper的安装,具体代码我会在接下来的博客中想大家展示。

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐