springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建

   搭建项目环境,是一个程序员学习的必经之路。没有项目环境,如何开始快乐的编码呢?

注:本笔记使用IDE开发工具

环境整合: springboot+mybatis+dubbo+zookeeper+maven+git  & 最后项目打包启动

第一步: 创建主工程

    1.1:   file -> new -> project 

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第1张图片

选择maven项目进入下一步。填写groupId,artifactId。点击下一步填写主工程名称。finish.

主工程建立之后,目录结构如下。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第2张图片

  1.2: 因为主工程只是作为一个项目的壳,没有实际代码,所以将src目录删掉 

第二步: 子模块的创建

  2.1:web子模块的创建。 

      点击项目右键,新建模块。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第3张图片

选择springboot创建方式

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第4张图片 填写信息进入下一步

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第5张图片

 勾选需要的jar包,看情况而定。这边是web项目,勾了一个web包

 springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第6张图片

点击下一步下一步完成创建。 

web模块目录如下

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第7张图片

创建完web之后,刷新maven。发现没有体现是子模块。 

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第8张图片

查看主工程pom文件,添加子模块配置 ,修改完之后maven显示hope为根项目,就是主工程

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第9张图片

接着查看web模块pom文件,发现默认的父依赖是springboot,修改成hope

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第10张图片 修改完之后发现报错,找不到下面那两个依赖的jar包了。因为修改之后的父工程没有这两个jar包的版本信息。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第11张图片

先回退回去。按ctrl+鼠标左键点击父依赖spring-boot-starter-parent跳转到父依赖的pom文件查看版本属性。没有找到,继续点击父依赖的父依赖,然后发现了版本号,复制过来

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第12张图片

最后修改完pom文件如下,刷新maven

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第13张图片

接下来打包一下主工程看能不能正常,发现报错,报错信息如下:

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第14张图片报错信息提示,要是用pom的打包方式,修改主工程的pom,修改完之后重新打包,成功。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第15张图片

接下来看web模块能否正常使用。先配置web端口号。默认的spring配置文件是properties文件格式,修改成yml的树状格式。不改也行,看个人喜好。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第16张图片

配置好web端口。新建一个controller看是否能够接受请求 

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第17张图片

 启动web项目。在浏览器输入地址,访问正常

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第18张图片

额外补充: 不使用IDE,测试下服务器的部署方式

将打好的包复制出来

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第19张图片

打开命令行使用java -jar运行发现报错

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第20张图片

打开jar包发现,这是普通的依赖用的jar包,不是可执行jar包, mainfest中也没有主类信息

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第21张图片

打包方式有问题, 网上查找资料之后,在web模块的pom中的构建配置中加入如下代码

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第22张图片

刷新maven重新打包。发现这次生成了两个jar包

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第23张图片

original版本的同上面那种打包方式,生成的是用于依赖的,不可执行的jar包。将新的jar包复制出来打开看看。发现目录结构发现变化

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第24张图片

找到mainfest文件,配置信息也不一样了。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第25张图片

重新使用命令行启动。成功

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第26张图片

浏览器访问正常

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第27张图片

web模块搭建完毕

 

2.2: service模块的搭建

 service模块创建同web。这边数据库跟框架是使用了postgresql跟mybatis,所以选了这两个依赖

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第28张图片

创建完service。同web模块一样,修改service模块的父依赖。其它依赖的版本问题同web的处理方式,到父依赖pom文件查看使用的版本。然后主工程的module配置增加service模块。

接着修改application文件的后缀为yml。加上数据库配置(数据库相应信息自己配置,这个笔记这边不写如何搞数据库,后续有研究再写)

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第29张图片

因为mybatis的sql都是放在xml文件中管理的。所以还要配置mybatis的sql文件扫描路径,它才能知道取哪里寻找对应的sql语句。(特别注意mapper-locations的配置,如果配置错误了,执行sql的时候会找不到对应的sql语句。classpath*后面不要空格)

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第30张图片

在resource下面建立相应的目录

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第31张图片

最后配置一下service模块的端口号。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第32张图片

接下来写个类来测试一下数据库查询。服务类如下

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第33张图片

 sql文件如下

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第34张图片

测试类如下

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第35张图片

执行测试类后,成功查询到数据

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第36张图片

 到此service模块建立完毕。在创建的过程中遇到问题修改配置做了蛮多改动,比较容易忘记自己改了什么。所以接下来先讲如何讲项目传到github上。

第三步:将项目上传到github中

打开项目目录,右键创建git仓库

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第37张图片

创建完仓库之后,在IDE中就可以看到git的选项。 

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第38张图片

 

 点击项目右键,将文件添加到git管理,然后点击提交目录。commit之后是存在了本地的仓库。点击push,提交到远程仓库

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第39张图片

因为还没有定义远程仓库,所以点击配置下远程仓库地址.

仓库地址自己去github登陆创建

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第40张图片

 springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第41张图片

 建好仓库之后回到IDE配置远程仓库地址。push项目。在github上面可以看到自己的提交记录,提交成功。在IDE的git中可以看到远程仓库的名称

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第42张图片

git代码提交完毕。接下来继续完善项目。创建api模块

第四步:创建api模块

api模块主要用于存放接口声明跟实体vo,建简单的maven模块就行。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第43张图片

 

api目录结构如下

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第44张图片

 将web模块跟service模块添加api模块的依赖。接下来创建测试类

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第45张图片

在controller中使用接口调用服务。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第46张图片

service项目一运行就马上结束了,所以加上这句代码让线程处理等待状态

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第47张图片

 

这时启动web服务会报错。因为这边是使用web,service模块分离的方式。 所以web依赖注入服务的时候无法找到服务。接下来我们要整合进dubbo+zookeeper,用于web调用远程的service模块。

 

第五步: 整合zookeeper跟dubbo

zookeeper软件请自行下载,下载之后启动zookeeper服务。

然后为web模块,service模块添加dubbo与zookeeper依赖

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第48张图片

 为service模块创建dubbo配置文件。并在启动类中加载该配置文件。

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第49张图片

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第50张图片

 service模块提供服务注册到zookeeper当中。

接下来为web模块创建dubbo配置文件,并在启动类当中引入配置文件

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第51张图片

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第52张图片

 web模块引用zookeeper的服务。

然后启动service模块。再启动web模块,启动成功,日志会打印出zookeeper的配置信息

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第53张图片

浏览器调用请求,成功调到service服务

springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建_第54张图片

简单的springboot分布式项目搭建完成。

ps:在引入zookeeper和dubbo的依赖的时候,出现了一些jar包依赖冲突的问题,比如日志打印不出来,启动显示日志类冲突等。安装IDE的maven helper插件可以比较直观的看到是什么jar包冲突,并尝试排除冲突jar包来看是否能够正常启动。

 

有错误的地方欢迎指正。

 

 

你可能感兴趣的:(springboot聚合项目+mybatis+dubbo+zookeeper+maven项目环境搭建)