1.新建普通maven工程

2.在父级pom中按需修改

3.删除父级src目录

4.创建公共模块common,里面只有service接口和实体类


5.构建微服务模块,provider



6.引用Zookeeper和Dubbo的依赖

在这个provider中修改pom文件坐标

  1. <dependencies>
  2. <!--引入公共模块项目-->
  3. <dependency>
  4. <groupId>cn.kgc</groupId>
  5. <artifactId>common</artifactId>
  6. <version>1.0-SNAPSHOT</version>
  7. </dependency>
  8. <!--这是微服dubbo的核心服务包-->
  9. <dependency>
  10. <groupId>com.alibaba</groupId>
  11. <artifactId>dubbo</artifactId>
  12. <version>2.5.3</version>
  13. <exclusions>
  14. <exclusion>
  15. <artifactId>spring</artifactId>
  16. <groupId>org.springframework</groupId>
  17. </exclusion>
  18. </exclusions>
  19. </dependency>
  20. <!--这是zookeeper的服务操作包 但主要这里的版本最好和你的zookeeper版本一致-->
  21. <dependency>
  22. <groupId>org.apache.zookeeper</groupId>
  23. <artifactId>zookeeper</artifactId>
  24. <version>3.4.6</version>
  25. <exclusions>
  26. <exclusion>
  27. <artifactId>slf4j-log4j12</artifactId>
  28. <groupId>org.slf4j</groupId>
  29. </exclusion>
  30. </exclusions>
  31. </dependency>
  32. <!--这里是zookeeper的zkCli的操作包 我们读写服务全靠这个包-->
  33. <dependency>
  34. <groupId>com.github.sgroschupf</groupId>
  35. <artifactId>zkclient</artifactId>
  36. <version>0.1</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework.boot</groupId>
  40. <artifactId>spring-boot-starter-jdbc</artifactId>
  41. </dependency>
  42. <dependency>
  43. <groupId>org.springframework.boot</groupId>
  44. <artifactId>spring-boot-starter-web</artifactId>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.mybatis.spring.boot</groupId>
  48. <artifactId>mybatis-spring-boot-starter</artifactId>
  49. <version>1.3.2</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>mysql</groupId>
  53. <artifactId>mysql-connector-java</artifactId>
  54. <version>5.1.38</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.springframework.boot</groupId>
  58. <artifactId>spring-boot-starter-test</artifactId>
  59. <scope>test</scope>
  60. </dependency>
  61. </dependencies>

7.在provider中写mapper和service的实现

8.在启动类上添加mapper扫描注解

9.在resources下建这两个文件,用于注册

9.1application.properties

修改需要的url参数和分页插件参数

  1. server.port=9090
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  3. spring.datasource.url=jdbc:mysql://localhost:3306/kgc
  4. spring.datasource.username=root
  5. spring.datasource.password=ok
  6. mybatis.type-aliases-package=cn.kgc.vo
  7. mybatis.mapper-locations=mapper/*.xml
  8. pagehelper.helper-dialect=mysql

9.2spring-provider.xml

根据需要修改用户服务接口中的参数,作用是将service的接口注入到Zookeeper中去

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://code.alibabatech.com/schema/dubbo
  8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  9. <!-- 提供方应用信息,用于计算依赖关系 -->
  10. <dubbo:application name="myprovider" />
  11. <!-- 使用zookeeper注册中心暴露服务地址,我的zookeeper是架在本地的 -->
  12. <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" timeout="60000"/>
  13. <!-- 用dubbo协议在20880端口暴露服务 -->
  14. <dubbo:protocol name="dubbo" port="20880" />
  15. <!-- 用户服务接口 -->
  16. <dubbo:service interface="cn.kgc.service.TableToOneService" ref="tableToOneService"/>
  17. <bean id="tableToOneService" class="cn.kgc.service.TableToOneServiceImpl"/>
  18. <dubbo:service interface="cn.kgc.service.TableToManyService" ref="tableToManyService"/>
  19. <bean id="tableToManyService" class="cn.kgc.service.TableToManyServiceImpl"/>
  20. </beans>

10再修改启动项,添加导入资源注解

11再创建微服务模块,consumer



12.把provider中pom的坐标拷贝到consumer

13.把provider中的application文件拷贝到consumer,并按需修改(端口号等)

14.编写controller类和添加spring-consumer.xml

14.1spring-consumer.xml

按需修改service名

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  5. <dubbo:application name="dubbo-consumer"/>
  6. <dubbo:registry check="false" address="zookeeper://127.0.0.1:2181"/>
  7. <dubbo:reference interface="cn.kgc.service.TableToOneService" id="tableToOneService"/>
  8. <dubbo:reference interface="cn.kgc.service.TableToManyService" id="tableToManyService"/>
  9. </beans>

15再启动类上添加导入资源注解

全部代码写完

然后开启Zookeeper服务器,然后开启provider启动类,再开启consumer启动类,最后用postman检测接口是否通畅,根据错误信息修改代码..

整体流程

https://www.cnblogs.com/jsccc520/p/12006237.html

springBoot框架在idea中创建流程 同时存在一个项目中的更多相关文章

  1. Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一.前言 如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...

  2. eclipse中创建多模块maven web项目

    本文讲述在eclipse中创建分模块maven web项目. 暂时将一个项目分为controller:service:dao以及父类模块四部分. 1.创建父类模块. 创建一个简单的maven proj ...

  3. 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款

    查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...

  4. CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写

    Q: CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写 A: 建议统一写,CI框架会自动识别已经加载过的类,所以不用担心重复加载的问题 class C_User ...

  5. 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例)

    UBUNTU 14.04 LTS 为例 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例) 2013-05-01 16:02 2693人阅读 评论(0) 收藏 举报 情景描述: 计算机C1放 ...

  6. eclipse中将一个项目作为library导入另一个项目中

    1. github上搜索viewpagerIndicator: https://github.com/JakeWharton/ViewPagerIndicator2. 下载zip包,解压,eclips ...

  7. 解决tomcat下面部署多个项目log4j的日志输出会集中输出到一个项目中的问题

    在一次项目上线后,发现了一个奇怪的问题,经过对源码的阅读调试终于解决,具体经过是这样的: 问题描述:tomcat7下面部署多个项目,log4j的日志输出会集中输出到一个项目中,就算配置了日志文件的绝对 ...

  8. (转)最近一个项目中关于NGUI部分的总结(深度和drawCall)

    在自己最近的一个项目中,软件的界面部分使用了NGUI来进行制作.在制作过程中,遇到了一些问题,也获取了一些经验,总结下来,作为日后的积累. 1.NGUI图集的使用. 此次是第一个自己正儿八经的制作完整 ...

  9. 将一个文件中的内容,在另一个文件中生成. for line in f1, \n f2.write(line)

    将一个文件中的内容,在另一个文件中生成. 核心语句: for line in f1: f1中的所有一行 f2.write(line)                                  ...

随机推荐

  1. JS数字转字符串的方法(number to string)

    一.双点解析 ..toString(); 二.括号先计算再转换 ().toString(); 三.加空串 + ''

  2. 配置node 的路由

    配置路由 引入路由中间件 const Router= require('koa-router'); 实例化 const router= new Router(); 配置路由地址 router.use( ...

  3. 一次峰回路转的getshell

    扫目录发现 http://www.xxx.test.cn/bak/以及/bak/upload.jsp

  4. Mac上使用频率最高的七组快捷键

    不管Mac还是Windows,会使用快捷键都能让你的工作效果提升不少,但是快捷键那么多一下子全部记下来也不太实际,这里小编就整理了七组使用频率最高的快捷键,希望可以帮到大家. https://www. ...

  5. shell脚本学习(2)查找

    1 grep 用法: grep -F  fa      找含有fa字符的字符串 yuyuyu@ubuntu:~$ grep -F fa < do.txt grep -i  fa      忽略大 ...

  6. PHP clearstatcache() 函数

    定义和用法 clearstatcache() 函数清除文件状态缓存. PHP 会缓存某些函数的返回信息,以便提供更高的性能.但是有时候,比如在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被 ...

  7. 树莓派GPIO口驱动编写

    一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...

  8. 兼容新旧浏览器的flex写法

    拷贝直接加类名即可 /* 定义 */ .flex-def { display: -webkit-box; /* 老版本语法: Safari, iOS, Android browser, older W ...

  9. 为什么不能在shell脚本中执行source /etc/profile或者source ~/.bashrc问题?

    执行脚本时,其中的命令是在一个子shell中执行的.子shell继承了父shell的环境变量,但无法修改他们,或者说所做的修改仅对子shell有效.

  10. <自动化测试>之<unittest框架使用1>

    要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...