尚医通 (三) --------- 预约挂号微服务模块搭建

电玩女神 2024-04-01 15:04 144阅读 0赞

目录

  • 一、项目模块构建
  • 二、导入 SQL 文件
  • 三、构建父工程 yygh-parent
  • 四、搭建 common 模块
      1. 搭建父模块
      1. 搭建 common-util 模块
      1. 搭建 service-util 模块
  • 五、搭建 model 模块
    • 引入实体类
  • 六、搭建 service 模块

一、项目模块构建

  • hospital-manage :医院接口模拟端 (已开发,直接使用)
  • yygh-parent :根目录,管理子模块:

    • common :公共模块父节点

      • common-util :工具类模块,所有模块都可以依赖于它
      • rabbit-util :RabbitMQ 业务封装
      • service-util :service 服务的工具包,包含 service 服务的公共配置类,所有 service 模块依赖于它
  • server-gateway:服务网关
  • model:实体类模块
  • service:API 接口服务父节点

    • service-hosp:医院 API 接口服务
    • service-cmn:公共 API 接口服务
    • service-user:用户 API 接口服务
    • service-order:订单 API 接口服务
    • service-oss:文件 API 接口服务
    • service-sms:短信 API 接口服务
    • service-task:定时任务服务
    • service-statistics:统计 API 接口服务
  • service-client:Feign 服务调用父节点

    • service-cmn-client:公共 API 接口
    • service-hosp-client:医院 API 接口
    • service-order-client:订单 API 接口
    • service-user:用户 API 接口

二、导入 SQL 文件

在这里插入图片描述

三、构建父工程 yygh-parent

父工程目录我们已经通过 git 引入

在这里插入图片描述

添加配置 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <modules>
  6. <module>common</module>
  7. <module>model</module>
  8. <module>service</module>
  9. <module>server-gateway</module>
  10. <module>service-client</module>
  11. <module>hospital-manage</module>
  12. <module>module</module>
  13. </modules>
  14. <parent>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter-parent</artifactId>
  17. <version>2.2.1.RELEASE</version>
  18. </parent>
  19. <groupId>com.fancy.yygh</groupId>
  20. <artifactId>yygh-parent</artifactId>
  21. <version>1.0</version>
  22. <packaging>pom</packaging>
  23. <properties>
  24. <java.version>1.8</java.version>
  25. <cloud.version>Hoxton.RELEASE</cloud.version>
  26. <alibaba.version>2.2.0.RELEASE</alibaba.version>
  27. <mybatis-plus.version>3.3.1</mybatis-plus.version>
  28. <mysql.version>5.1.46</mysql.version>
  29. <swagger.version>2.7.0</swagger.version>
  30. <jwt.version>0.7.0</jwt.version>
  31. <fastjson.version>1.2.29</fastjson.version>
  32. <httpclient.version>4.5.1</httpclient.version>
  33. <easyexcel.version>2.2.0-beta2</easyexcel.version>
  34. <aliyun.version>4.1.1</aliyun.version>
  35. <oss.version>3.9.1</oss.version>
  36. <jodatime.version>2.10.1</jodatime.version>
  37. </properties>
  38. <!--配置dependencyManagement锁定依赖的版本-->
  39. <dependencyManagement>
  40. <dependencies>
  41. <dependency>
  42. <groupId>org.springframework.cloud</groupId>
  43. <artifactId>spring-cloud-dependencies</artifactId>
  44. <version>${cloud.version}</version>
  45. <type>pom</type>
  46. <scope>import</scope>
  47. </dependency>
  48. <dependency>
  49. <groupId>com.alibaba.cloud</groupId>
  50. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  51. <version>${alibaba.version}</version>
  52. <type>pom</type>
  53. <scope>import</scope>
  54. </dependency>
  55. <!--mybatis-plus 持久层-->
  56. <dependency>
  57. <groupId>com.baomidou</groupId>
  58. <artifactId>mybatis-plus-boot-starter</artifactId>
  59. <version>${mybatis-plus.version}</version>
  60. </dependency>
  61. <dependency>
  62. <groupId>mysql</groupId>
  63. <artifactId>mysql-connector-java</artifactId>
  64. <version>${mysql.version}</version>
  65. </dependency>
  66. <!--swagger-->
  67. <dependency>
  68. <groupId>io.springfox</groupId>
  69. <artifactId>springfox-swagger2</artifactId>
  70. <version>${swagger.version}</version>
  71. </dependency>
  72. <!--swagger ui-->
  73. <dependency>
  74. <groupId>io.springfox</groupId>
  75. <artifactId>springfox-swagger-ui</artifactId>
  76. <version>${swagger.version}</version>
  77. </dependency>
  78. <dependency>
  79. <groupId>io.jsonwebtoken</groupId>
  80. <artifactId>jjwt</artifactId>
  81. <version>${jwt.version}</version>
  82. </dependency>
  83. <dependency>
  84. <groupId>org.apache.httpcomponents</groupId>
  85. <artifactId>httpclient</artifactId>
  86. <version>${httpclient.version}</version>
  87. </dependency>
  88. <dependency>
  89. <groupId>com.alibaba</groupId>
  90. <artifactId>fastjson</artifactId>
  91. <version>${fastjson.version}</version>
  92. </dependency>
  93. <dependency>
  94. <groupId>com.alibaba</groupId>
  95. <artifactId>easyexcel</artifactId>
  96. <version>${easyexcel.version}</version>
  97. </dependency>
  98. <dependency>
  99. <groupId>com.aliyun</groupId>
  100. <artifactId>aliyun-java-sdk-core</artifactId>
  101. <version>${aliyun.version}</version>
  102. </dependency>
  103. <dependency>
  104. <groupId>com.aliyun.oss</groupId>
  105. <artifactId>aliyun-sdk-oss</artifactId>
  106. <version>${oss.version}</version>
  107. </dependency>
  108. <!--日期时间工具-->
  109. <dependency>
  110. <groupId>joda-time</groupId>
  111. <artifactId>joda-time</artifactId>
  112. <version>${jodatime.version}</version>
  113. </dependency>
  114. </dependencies>
  115. </dependencyManagement>
  116. </project>

四、搭建 common 模块

  • common:公共模块父节点

    • common-util:工具类模块,所有模块都可以依赖于它
    • service-util:service 服务的工具包,包含 service 服务的公共配置类,所有 service 模块依赖于它

1. 搭建父模块

点击 yygh-parent,选择 New–>Module ,操作如下

在这里插入图片描述

完成,删除 src 目录,结构如下

在这里插入图片描述

修改配置 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.fancy.yygh</groupId>
  7. <artifactId>yygh-parent</artifactId>
  8. <version>1.0</version>
  9. </parent>
  10. <artifactId>common</artifactId>
  11. <packaging>pom</packaging>
  12. <version>1.0</version>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter-web</artifactId>
  17. <scope>provided </scope>
  18. </dependency>
  19. <!--mybatis-plus-->
  20. <dependency>
  21. <groupId>com.baomidou</groupId>
  22. <artifactId>mybatis-plus-boot-starter</artifactId>
  23. <scope>provided </scope>
  24. </dependency>
  25. <!--lombok用来简化实体类:需要安装lombok插件-->
  26. <dependency>
  27. <groupId>org.projectlombok</groupId>
  28. <artifactId>lombok</artifactId>
  29. </dependency>
  30. <!--swagger-->
  31. <dependency>
  32. <groupId>io.springfox</groupId>
  33. <artifactId>springfox-swagger2</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>io.springfox</groupId>
  37. <artifactId>springfox-swagger-ui</artifactId>
  38. </dependency>
  39. </dependencies>
  40. </project>

2. 搭建 common-util 模块

点击 common,选择 New –> Module,操作如下

在这里插入图片描述
完成,结构如下

在这里插入图片描述
修改配置 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.fancy.yygh</groupId>
  7. <artifactId>common</artifactId>
  8. <version>1.0</version>
  9. </parent>
  10. <artifactId>common-util</artifactId>
  11. <version>1.0</version>
  12. <packaging>jar</packaging>
  13. <name>common-util</name>
  14. <description>common-util</description>
  15. <dependencies>
  16. <dependency>
  17. <groupId>org.apache.httpcomponents</groupId>
  18. <artifactId>httpclient</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.alibaba</groupId>
  22. <artifactId>fastjson</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>io.jsonwebtoken</groupId>
  26. <artifactId>jjwt</artifactId>
  27. </dependency>
  28. <dependency>
  29. <groupId>com.alibaba</groupId>
  30. <artifactId>easyexcel</artifactId>
  31. </dependency>
  32. <!-- 日期工具栏依赖 -->
  33. <dependency>
  34. <groupId>joda-time</groupId>
  35. <artifactId>joda-time</artifactId>
  36. </dependency>
  37. </dependencies>
  38. </project>

添加工具类

在这里插入图片描述






























工具类 说明
YyghException 自定义全局异常
Result API 统一返回结果封装类
ResultCodeEnum API统一返回结果状态信息
BeanUtils 实体bean copy工具类
MD5 MD5加密工具类

3. 搭建 service-util 模块

搭建过程同 common-util,如图
在这里插入图片描述

修改配置 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.fancy.yygh</groupId>
  7. <artifactId>common</artifactId>
  8. <version>1.0</version>
  9. </parent>
  10. <artifactId>service-util</artifactId>
  11. <version>1.0</version>
  12. <packaging>jar</packaging>
  13. <name>service-util</name>
  14. <description>service-util</description>
  15. <dependencies>
  16. <dependency>
  17. <groupId>com.fancy.yygh</groupId>
  18. <artifactId>common-util</artifactId>
  19. <version>1.0</version>
  20. </dependency>
  21. <!-- redis -->
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-data-redis</artifactId>
  25. </dependency>
  26. <!-- spring2.X集成redis所需common-pool2-->
  27. <dependency>
  28. <groupId>org.apache.commons</groupId>
  29. <artifactId>commons-pool2</artifactId>
  30. <version>2.6.0</version>
  31. </dependency>
  32. </dependencies>
  33. </project>

添加 service-util 公共类

在这里插入图片描述


















配置类 说明
MybatisPlusConfig MybatisPlus配置类
CommonMetaObjectHandler Mybatis plus Handler配置类
  1. package com.fancy.yygh.common.config;
  2. import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
  3. import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
  4. import org.mybatis.spring.annotation.MapperScan;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.transaction.annotation.EnableTransactionManagement;
  8. /**
  9. * MybatisPlus配置类
  10. */
  11. @EnableTransactionManagement //事务处理
  12. @Configuration
  13. @MapperScan("com.atguigu.yygh.*.mapper")
  14. public class MybatisPlusConfig {
  15. /**
  16. * 分页插件
  17. */
  18. @Bean
  19. public PaginationInterceptor paginationInterceptor() {
  20. PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
  21. // paginationInterceptor.setLimit(你的最大单页限制数量,默认 500 条,小于 0 如 -1 不受限制);
  22. return paginationInterceptor;
  23. }
  24. /**
  25. * 乐观锁配置
  26. */
  27. @Bean
  28. public OptimisticLockerInterceptor optimisticLockerInterceptor() {
  29. return new OptimisticLockerInterceptor();
  30. }
  31. }
  32. package com.fancy.yygh.common.handler;
  33. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  34. import org.apache.ibatis.reflection.MetaObject;
  35. import org.springframework.stereotype.Component;
  36. import java.util.Date;
  37. /**
  38. * Mybatis plus Handler配置类
  39. */
  40. @Component
  41. public class CommonMetaObjectHandler implements MetaObjectHandler {
  42. @Override
  43. public void insertFill(MetaObject metaObject) {
  44. this.setFieldValByName("createTime", new Date(), metaObject);
  45. this.setFieldValByName("updateTime", new Date(), metaObject);
  46. }
  47. @Override
  48. public void updateFill(MetaObject metaObject) {
  49. this.setFieldValByName("updateTime", new Date(), metaObject);
  50. }
  51. }

五、搭建 model 模块

搭建过程同 common

修改 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <parent>
  7. <groupId>com.fancy.yygh</groupId>
  8. <artifactId>yygh-parent</artifactId>
  9. <version>1.0</version>
  10. </parent>
  11. <artifactId>model</artifactId>
  12. <version>1.0</version>
  13. <packaging>jar</packaging>
  14. <name>model</name>
  15. <description>model</description>
  16. <dependencies>
  17. <dependency>
  18. <groupId>org.projectlombok</groupId>
  19. <artifactId>lombok</artifactId>
  20. </dependency>
  21. <!--mybatis-plus-->
  22. <dependency>
  23. <groupId>com.baomidou</groupId>
  24. <artifactId>mybatis-plus-boot-starter</artifactId>
  25. <scope>provided </scope>
  26. </dependency>
  27. <!--swagger-->
  28. <dependency>
  29. <groupId>io.springfox</groupId>
  30. <artifactId>springfox-swagger2</artifactId>
  31. <scope>provided </scope>
  32. </dependency>
  33. <dependency>
  34. <groupId>com.alibaba</groupId>
  35. <artifactId>easyexcel</artifactId>
  36. <scope>provided </scope>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework.boot</groupId>
  40. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  41. <scope>provided </scope>
  42. </dependency>
  43. <dependency>
  44. <groupId>com.alibaba</groupId>
  45. <artifactId>fastjson</artifactId>
  46. <scope>provided </scope>
  47. </dependency>
  48. </dependencies>
  49. </project>

引入实体类

将实体类都引入进来,后续不再单独引入,实体类没有业务逻辑,提前引入,方便后续开发。

在这里插入图片描述

六、搭建 service 模块

  • service :service 模块父节点

    • service-user :会员服务模块

修改配置 pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>yygh-parent</artifactId>
  7. <groupId>com.fancy.yygh</groupId>
  8. <version>1.0</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>service</artifactId>
  12. <packaging>pom</packaging>
  13. <version>1.0</version>
  14. <dependencies>
  15. <dependency>
  16. <groupId>com.fancy.yygh</groupId>
  17. <artifactId>service-util</artifactId>
  18. <version>1.0</version>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.fancy.yygh</groupId>
  22. <artifactId>model</artifactId>
  23. <version>1.0</version>
  24. </dependency>
  25. <!--web-->
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter-web</artifactId>
  29. </dependency>
  30. <!--mybatis-plus-->
  31. <dependency>
  32. <groupId>com.baomidou</groupId>
  33. <artifactId>mybatis-plus-boot-starter</artifactId>
  34. </dependency>
  35. <!--mysql-->
  36. <dependency>
  37. <groupId>mysql</groupId>
  38. <artifactId>mysql-connector-java</artifactId>
  39. </dependency>
  40. <!--开发者工具-->
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-devtools</artifactId>
  44. <optional>true</optional>
  45. </dependency>
  46. <!-- 服务调用feign -->
  47. <dependency>
  48. <groupId>org.springframework.cloud</groupId>
  49. <artifactId>spring-cloud-starter-openfeign</artifactId>
  50. </dependency>
  51. <!-- 服务注册 -->
  52. <dependency>
  53. <groupId>com.alibaba.cloud</groupId>
  54. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  55. </dependency>
  56. <!-- 流量控制 -->
  57. <dependency>
  58. <groupId>com.alibaba.cloud</groupId>
  59. <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  60. </dependency>
  61. </dependencies>
  62. <build>
  63. <plugins>
  64. <plugin>
  65. <groupId>org.springframework.boot</groupId>
  66. <artifactId>spring-boot-maven-plugin</artifactId>
  67. </plugin>
  68. </plugins>
  69. <resources>
  70. <resource>
  71. <directory>src/main/java</directory>
  72. <includes>
  73. <include>**/*.yml</include>
  74. <include>**/*.properties</include>
  75. <include>**/*.xml</include>
  76. </includes>
  77. <filtering>false</filtering>
  78. </resource>
  79. <resource>
  80. <directory>src/main/resources</directory>
  81. <includes> <include>**/*.yml</include>
  82. <include>**/*.properties</include>
  83. <include>**/*.xml</include>
  84. </includes>
  85. <filtering>false</filtering>
  86. </resource>
  87. </resources>
  88. </build>
  89. </project>

发表评论

表情:
评论列表 (有 0 条评论,144人围观)

还没有评论,来说两句吧...

相关阅读