Dubbo创建项目
按照day01天的架构流程图,在注册时候需要Zookeeper,这里需要引入Zookeeper。
1、创建Parent工程,用于统一管理资源。
2、创建pojo工程,继承Parent工程。
创建实体类,实现序列化接口。
3、创建Mapper工程,继承Parent工程,并修改pom.xml配置文件。
3.1、在配置文件中,找到父工程里面关于操作数据库的坐标,将该坐标添加到依赖当中。
3.2、在配置文件中,将pojo坐标添加到依赖当中。(因为要操作实体,所以将pojo坐标进行注入到依赖中)
3.3、在配置文件中,将资源拷贝插件的坐标添加到依赖中。(因为Mapper的映射文件并没有放到resouce目录下,在打包的时候是找不到该xml文件的,所以要配置资源拷贝文件。)
4、创建provider工程,工程类型pom类型,该工程作为一个聚合工程,并该继承Parent工程。
4.1、创建user-interface模块,在pom.xml文件中将pojo的坐标注入到依赖中。
该模块用于存放服务的接口,而定义接口需要实体类型,所以需要将pojo的坐标注入到依赖中
4.2、创建user-service模块,在pom.xml文件中将mapper、interface,dubbo、zkczlient坐标注入到依赖中。
因为要做接口的实现类,所以依赖interface坐标。
因为要做服务的具体实现,所以依赖dubbo坐标。
dubbo导入进来后,需要连接Zookeeper注册中心,所以依赖zkclient坐标。
该项目最后也是要操作数据库的,所以依赖mapper坐标,当注入mapper坐标后,会级联注入pojo坐标。
注意:
关于dubbo于spring的jar注入问题,有两种解决方案:
1、依赖dubbo的坐标导入spring的容器所依赖的jar包,在使用过程中缺少spring的组件时,需要手动添加坐标。
2、在添加dubbo的坐标中剔除已包含的spring的jar包,自己手动导入所有使用spring组件的坐标。
5、配置provider
5.1、添加spring配置文件。
数据源(和mybaits进行了整合)、扫描、事务。
5.2、添加mybtais配置文件。
分页插件。
5.3、添加db.properties数据库连接文件。
5.4、添加dubbo配置文件。
需要注意:
按照dubbo架构图的执行流程,要启动Provider,首先要启动的是spring容器,但默认的是依赖于Dubbo的Main类下面的main方法来启动spring,
而Dubbo会自动去找类路径下的META-INF/spring/*.xml文件,那么其它的spring配置文件就被忽略无法启动了,这时需要将其他的spring文件导入到该dubbo.xml文件中,当解析dubbo配置文件的时候,就可以将其余的spring配置文件给解析了。
6、编写测试类,测试是否能够发布成功
因为项目是Provider,按照架构图的执行流程,在启动时需要注册Registory,所以要连接Zookeeper,那么首先要启动Zookeeper。
7、创建consumer,工程类型为pom,该工程作为聚合工程,并继承父工程Parent。
7.1、创建dubbo-user-protal(war)模板。
该模板负责处理客户端请求,可以理解为controller。
注入单元测试、日志、spring、dubbo和tomcat插件的依赖。
7.2、创建dubbo-user-protal-service(war)模板,该模板里面存放着业务层的逻辑代码。
该模板是将整个项目的业务层给分离出来了放入到了这个模板中。
在pom.xml文件中添加坐标依赖。
接口模块、pojo工程、spring-context、spring-beans
7.2.1、配置web.xml文件。
8、启动tomcat。
启动前需要将项目的jar包进行打包,具体看依赖。
服务中的增删改查的实现
增加数据过程
1、在mapper项目中的mapper接口中,添加新增数据的方法。
2、在mapper的映射文件中,添加实现数据的标签。
3、具体的mapper应该由服务来调用,那么先创建服务的接口dubbo-user-interface,在接口创建完成后,因为是项目分离,需要在service项目中去创建实现类。
4、创建接口的实现类,那么在发布的时候,服务最终执行的就service中的代码。
通俗讲,加上@Service注解,调用mapper操作数据库,使用@Autowired自动装配。
mapper是在之前依赖关系中已经被注入了,所以可以直接调用。
5、Provider.xml配置文件
6、配置Assembly打包插件
6.1、需要在项目的根下创建一个目录,名称为:assembly。
6.2、将插件中的bin和conf文件拷贝到assembly中。
6.3、将conf目录下的dubbo.properties文件中内容清空。
6.4、需要在assembly的根目录下创建一个assembly.xml的配置文件。
6.5、需要修改项目的pom文件添加assembly的打包插件。
6.6、执行Maven的Install命令。
Maven插件执行是依赖于命令的。
6.7、将打好的包上传到Linux中,并解压到指定文件夹中。
6.8、找到解压后的文件夹,该文件夹中存有3个目录,bin、conf、lib,在bin目录中可以通过start.sh启动服务,当服务启动后,会生成该文件的根下生成logs文件夹,里面存有日志文件,
通过访问日志文件来查看服务是否启动成功
消费者中的增删改查的实现
1、创建业务接口
2、实现服务项目中业务层接口,调用服务项目中的业务层方法,去操作数据库。
3、在Controller中调用业务项目中的实现方法
4、编写前端页面。
5、配置consumer.xml文件
6、在Linux中启动tomcat,用热部署部署项目。
7、选中要部署的项目,右键Run As。