Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置

系列文章目录

1.项目介绍及环境配置
2. 短信验证码登录
3. 用户信息
4. MongoDB
5. 推荐好友列表/MongoDB集群/动态发布与查看
6. 圈子动态/圈子互动
7. 即时通讯(基于第三方API)
8. 附近的人(百度地图APi)
9. 小视频
10.网关配置
11.后台管理


文章目录

  • 系列文章目录
  • 一、项目介绍
    • 1. 功能
    • 2. 技术选型
    • 3. 页面预览
      • ⑴. 登录
      • ⑵. 交友(主页)
      • ⑶. 探花
      • ⑷. 搜附件
      • ⑸. 桃花传音
      • ⑹. 测灵魂
      • ⑺. 圈子
      • ⑻. 消息
      • ⑼. 小视频
      • ⑽. 我的
  • 二、开发工具
    • 1. YAPI
    • 2. Android模拟器
    • 3. 调试工具PostMan
    • 4. 项目镜像
      • ⑴. 资源下载
      • ⑵. 虚拟机配置
      • ⑶. FinalShell
    • 5. IDEA配置
      • ⑴. JDK1.8
      • ⑵. 设置项目编码格式
      • ⑶. 设置Maven仓库
    • 6. MYSQL数据库
  • 三、项目搭建
    • 1. 创建项目
    • 2. 主题结构
    • 3. 模块依赖
      • ⑴. tanhua
      • ⑵. tanhua-app-server
      • ⑶. tanhua-autoconfig
      • ⑷. tanhua-commons
      • ⑸. tanhua-dubbo-db
      • ⑹. tanhua-dubbo-interface
      • ⑺. tanhua-dubbo-mongo
      • ⑻. tanhua-model
    • 4. Lombok
    • 5. 常用注解
      • ⑴. @Data注解
      • ⑵. @Slf4j注解
      • ⑶. @AllArgsConstructor、@NoArgsConstructor注解
      • ⑷. @Builder



一、项目介绍

探花交友是一个移动端陌生人社交App

1. 功能

功能 说明 备注
注册、登录 用户无需单独注册,直接通过手机号登录即可 首次登录成功后需要完善个人信息
交友 主要功能有:测灵魂、桃花传音、搜附近、探花等
圈子 类似微信朋友圈,用户可以发动态、查看好友动态等
消息 通知类消息 + 即时通讯消息
小视频 类似抖音,用户可以发小视频,评论等 显示小视频列表需要进行推荐算法计算后进行展现。
我的 我的动态、关注数、粉丝数、通用设置等

2. 技术选型

前端:

  • flutter + android + 环信SDK + redux + shared_preferences + connectivity + iconfont + webview + sqflite

后端:

  • Spring Boot + SpringMVC + Mybatis + MybatisPlus + Dubbo
  • Elasticsearch geo 实现地理位置查询
  • MongoDB 实现海量数据的存储
  • Redis 数据的缓存
  • Spark + MLlib 实现智能推荐
  • 第三方服务 环信即时通讯
  • 第三方服务 阿里云 OSS 、 短信服务
  • 第三方服务 虹软开放平台 / 阿里云

技术解决方案

  • 使用Elasticsearch geo实现附近的人的解决方案
  • 使用Spark + Mllib实现智能推荐的解决方案
  • 使用MongoDB进行海量数据的存储的解决方案
  • 使用采用分布式文件系统存储小视频数据的解决方案
  • 使用百度人脸识别的解决方案
  • 使用阿里云进行短信验证码发送的解决方案

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第1张图片


3. 页面预览

⑴. 登录

用户通过手机验证码进行登录,如果是第一次登录则需要完善个人信息,在上传图片时,需要对上传的图片做人像的校验,防止用户上传非人像的图片作为头像。流程完成后,则登录成功。

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第2张图片


⑵. 交友(主页)

交友是探花项目的核心功能之一,用户可以查看好友,添加好友,搜索好友等操作;还有引导功能:今日佳人、推荐、最近访客…

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第3张图片


⑶. 探花

左划喜欢,右划不喜欢,每天限量不超过100个,开通会员可增加限额。双方互相喜欢则配对成功
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第4张图片


⑷. 搜附件

根据用户当前所在的位置进行查询,并且在10km的范围内进行查询,可以通过筛选按钮进行条件筛选
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第5张图片

⑸. 桃花传音

功能类似QQ中的漂流瓶,用户可以发送和接收语音消息,陌生人就会接收到消息
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第6张图片


⑹. 测灵魂

测试题用于对用户进行分类,每次提交答案后更新用户属性
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第7张图片


⑺. 圈子

推荐频道为根据问卷及喜好推荐相似用户动态
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第8张图片


⑻. 消息

消息包含通知类的消息和好友消息
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第9张图片


⑼. 小视频

用户可以上传小视频,也可以查看小视频列表,并且可以进行点赞操作
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第10张图片


⑽. 我的

显示关注数、喜欢数、粉丝数、我的动态等信息
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第11张图片



二、开发工具

1. YAPI

本项目采用 YApi 作为API接口管理,开源的接口定义、管理、提供mock数据的管理平台

请求地址: http://192.168.136.160:3000
用户名/密码: [email protected] / 123456

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第12张图片

2. Android模拟器

网易MUMU安卓模拟器下载地址: https://mumu.163.com/


操作: 点击 更多 -> 安装 -> 选择app-1104-真机

网盘资源地址(不需要密码): https://pan.baidu.com/s/1daL566ehyZuQ6s5vzXYNpA?pwd=java

在这里插入图片描述

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第13张图片


3. 调试工具PostMan

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。postman被500万开发者和超100,000家公司用于每月访问1.3亿个API。

官方网址: https://www.postman.com/

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第14张图片


4. 项目镜像

⑴. 资源下载

项目使用的是Centos7环境,该环境中部署安装了项目所需要的各种服务,如:RabbitMQ,MongoDB、Redis等。

网盘资源地址(不需要密码): https://pan.baidu.com/s/1daL566ehyZuQ6s5vzXYNpA?pwd=java

在这里插入图片描述

  • 虚拟机的用户名和密码:root / root123
  • 默认参数:CPU:2核,内存(内存不足可以调整):4G,硬盘:60G
  • 网关IP为(需要修改): 192.168.136.160

⑵. 虚拟机配置

- 通过 VMware 打开 centos7.vmx 文件

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第15张图片

- 编辑 虚拟网络编辑器
子网IP地址: 改为 192.160.136.0

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第16张图片


⑶. FinalShell

除MySQL数据库部署到本地电脑中。其他涉及到的所有组件都已经以docker形式安装到虚拟机中。全部使用docker-compose的方式集中式部署
每个文件夹中都包含一个docker-compose.yml配置文件,一键启动并部署应用

通过 FinalShell 链接虚拟机,开启项目所需的环境依赖

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第17张图片


# 开始 项目所需环境
cd /root/docker-file/base/
docker-compose up -d

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第18张图片


5. IDEA配置

  • JDK1.8
  • Intellij Idea
  • maven-3.x以上
  • Git
  • UTF-8编码格式

⑴. JDK1.8

网盘资源地址(不需要密码): https://pan.baidu.com/s/1daL566ehyZuQ6s5vzXYNpA?pwd=java

在这里插入图片描述

⑵. 设置项目编码格式

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第19张图片

⑶. 设置Maven仓库

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第20张图片


6. MYSQL数据库

- 打开 Navicat ,点击右键选择新建数据库,字符集选utf-8

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第21张图片

- 如果连接不上localhost,检查本地 mysql 服务是否启动
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第22张图片

- 在新建的数据库上右击,选择“运行SQL文件”,在提示框中选择文件所在的路径,编码保持一致选择utf-8

网盘资源地址(不需要密码): https://pan.baidu.com/s/1daL566ehyZuQ6s5vzXYNpA?pwd=java

在这里插入图片描述

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第23张图片

- 数据库表

数据库表 说明
tb_user 用户表
tb_user_info 用户详情表
tb_settings 用户设置表
tb_question 好友问题表
tb_black_list 黑名单
tb_announcement 公告表


三、项目搭建

GItee仓库地址: https://gitee.com/yuan0_0/tanhua_20220918.git

1. 创建项目

Spring Initializr 官网: https://start.spring.io/

创建一个Spring初始项目:
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第24张图片


2. 主题结构

整体项目使用Maven架构搭建,采用聚合工程形式管理模块,为了便于调用,dubbo需要拆分为接口模块和服务模块

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第25张图片

父工程 工程名称 说明
tanhua tanhua-autoconfig 自动装配的工具类
tanhua tanhua-domain 实体类模块
tanhua tanhua-dubbo Dubbo子模块(可以理解为文件夹,管理dubbo模块)
tanhua tanhua-app 与手机端交互的入口模块
tanhua-dubbo tanhua-dubbo-interface Dubbo接口模块
tanhua-dubbo tanhua-dubbo-db Dubbo服务模块(数据库部分)
tanhua-dubbo tanhua-dubbo-mongo Dubbo服务模块(MongoDB部分)

3. 模块依赖

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第26张图片

⑴. tanhua

编辑 pom.xml 文件:

<properties>
    <maven.compiler.source>8maven.compiler.source>
    <maven.compiler.target>8maven.compiler.target>
    <mysql.version>5.1.47mysql.version>
    <jackson.version>2.11.0jackson.version>
    <druid.version>1.0.9druid.version>
    <servlet-api.version>2.5servlet-api.version>
    <jsp-api.version>2.0jsp-api.version>
    <joda-time.version>2.5joda-time.version>
    <commons-lang3.version>3.3.2commons-lang3.version>
    <commons-io.version>1.3.2commons-io.version>
    <mybatis.version>3.5.6mybatis.version>
    <mybatis.mybatis-plus>3.4.1mybatis.mybatis-plus>
    <lombok.version>1.18.8lombok.version>
    <mongo.version>4.0.5mongo.version>
    <spring-cloud.version>Hoxton.SR10spring-cloud.version>
    <spring-cloud-alibaba.version>2.2.5.RELEASEspring-cloud-alibaba.version>
properties>


<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
        <scope>testscope>
    dependency>
    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>4.12version>
        <scope>testscope>
    dependency>
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>
    <dependency>
        <groupId>cn.hutoolgroupId>
        <artifactId>hutool-allartifactId>
        <version>5.4.3version>
    dependency>
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>fastjsonartifactId>
        <version>1.2.8version>
    dependency>
dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.nettygroupId>
            <artifactId>netty-bomartifactId>
            <version>4.1.59.Finalversion>
            <type>pomtype>
            <scope>importscope>
        dependency>

        <dependency>
            <groupId>io.projectreactorgroupId>
            <artifactId>reactor-bomartifactId>
            <version>2020.0.4version>
            <type>pomtype>
            <scope>importscope>
        dependency>

        <dependency>
            <groupId>io.projectreactor.nettygroupId>
            <artifactId>reactor-nettyartifactId>
            <version>0.9.8.RELEASEversion>
        dependency>

        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-dependenciesartifactId>
            <version>${spring-cloud.version}version>
            <type>pomtype>
            <scope>importscope>
        dependency>

        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-alibaba-dependenciesartifactId>
            <version>${spring-cloud-alibaba.version}version>
            <type>pomtype>
            <scope>importscope>
        dependency>

        <dependency>
            <groupId>joda-timegroupId>
            <artifactId>joda-timeartifactId>
            <version>${joda-time.version}version>
        dependency>

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plusartifactId>
            <version>${mybatis.mybatis-plus}version>
        dependency>

        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>${mysql.version}version>
        dependency>

        <dependency>
            <groupId>org.mongodbgroupId>
            <artifactId>mongodb-driver-syncartifactId>
            <version>${mongodb.version}version>
        dependency>

        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
            <version>${lombok.version}version>
        dependency>

        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
            <version>${commons-lang3.version}version>
        dependency>

        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
            <version>3.7version>
        dependency>
        
        <dependency>
            <groupId>com.fasterxml.jackson.coregroupId>
            <artifactId>jackson-databindartifactId>
            <version>${jackson.version}version>
        dependency>
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>${druid.version}version>
        dependency>
        <dependency>
            <groupId>commons-codecgroupId>
            <artifactId>commons-codecartifactId>
            <version>1.11version>
        dependency>
    dependencies>
dependencyManagement>

<build>
    <plugins>
        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <version>3.2version>
            <configuration>
                <source>1.8source>
                <target>1.8target>
                <encoding>UTF-8encoding>
            configuration>
        plugin>
    plugins>
build>

⑵. tanhua-app-server

编辑 tanhua-app-server/pom.xml 文件:

<dependencies>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-redisartifactId>
    dependency>

    
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>

    
    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
    dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-databindartifactId>
    dependency>
    <dependency>
        <groupId>commons-codecgroupId>
        <artifactId>commons-codecartifactId>
    dependency>
    <dependency>
        <groupId>joda-timegroupId>
        <artifactId>joda-timeartifactId>
    dependency>

    
    <dependency>
        <groupId>io.jsonwebtokengroupId>
        <artifactId>jjwtartifactId>
        <version>0.9.1version>
    dependency>

    
    <dependency>
        <groupId>com.github.tobatogroupId>
        <artifactId>fastdfs-clientartifactId>
        <version>1.26.7version>
        <exclusions>
            <exclusion>
                <groupId>ch.qos.logbackgroupId>
                <artifactId>logback-classicartifactId>
            exclusion>
        exclusions>
    dependency>


    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-dubboartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>

    
    
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-dubbo-interfaceartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-commonsartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-autoconfigartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
dependencies>

<build>
    <finalName>tanhua-app-serverfinalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <version>2.3.9.RELEASEversion>
        plugin>
    plugins>
build>

⑶. tanhua-autoconfig

编辑 tanhua-autoconfig/pom.xml 文件:

<dependencies>
    
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>aliyun-java-sdk-coreartifactId>
        <version>4.5.3version>
    dependency>
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>dysmsapi20170525artifactId>
        <version>2.0.1version>
    dependency>
    
    <dependency>
        <groupId>com.aliyun.ossgroupId>
        <artifactId>aliyun-sdk-ossartifactId>
        <version>3.10.2version>
    dependency>
    
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>facebody20191230artifactId>
        <version>1.0.10version>
    dependency>
    
    <dependency>
        <groupId>com.baidu.aipgroupId>
        <artifactId>java-sdkartifactId>
        <version>4.8.0version>
    dependency>
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
        <groupId>com.easemob.imgroupId>
        <artifactId>im-sdk-coreartifactId>
        <version>0.2.5version>
    dependency>
    <dependency>
        <groupId>com.aliyungroupId>
        <artifactId>aliyun-java-sdk-greenartifactId>
        <version>3.6.1version>
    dependency>
dependencies>

⑷. tanhua-commons

编辑 tanhua-commons/pom.xml 文件:

<dependencies>
    
    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
    dependency>
    <dependency>
        <groupId>commons-codecgroupId>
        <artifactId>commons-codecartifactId>
    dependency>
    <dependency>
        <groupId>joda-timegroupId>
        <artifactId>joda-timeartifactId>
    dependency>
    
    <dependency>
        <groupId>io.jsonwebtokengroupId>
        <artifactId>jjwtartifactId>
        <version>0.9.1version>
    dependency>
dependencies>

⑸. tanhua-dubbo-db

编辑 tanhua-dubbo-db/pom.xml 文件:

<dependencies>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

    <dependency>
        <groupId>com.baomidougroupId>
        <artifactId>mybatis-plusartifactId>
    dependency>

    <dependency>
        <groupId>com.baomidougroupId>
        <artifactId>mybatis-plus-boot-starterartifactId>
        <version>${mybatis.mybatis-plus}version>
    dependency>

    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
    dependency>

    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
    dependency>

    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>

    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
    dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-databindartifactId>
    dependency>

    <dependency>
        <groupId>commons-codecgroupId>
        <artifactId>commons-codecartifactId>
    dependency>

    <dependency>
        <groupId>joda-timegroupId>
        <artifactId>joda-timeartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-dubboartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>

    
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-dubbo-interfaceartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
dependencies>

<build>
    <finalName>tanhua-dubbo-dbfinalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <version>2.3.9.RELEASEversion>
        plugin>
    plugins>
build>

⑹. tanhua-dubbo-interface

编辑 tanhua-dubbo-interface/pom.xml 文件:

<dependencies>
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-modelartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
dependencies>

⑺. tanhua-dubbo-mongo

编辑 tanhua-dubbo-mongo/pom.xml 文件:

<dependencies>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>

    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
    dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-databindartifactId>
    dependency>

    <dependency>
        <groupId>commons-codecgroupId>
        <artifactId>commons-codecartifactId>
    dependency>

    <dependency>
        <groupId>joda-timegroupId>
        <artifactId>joda-timeartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-dubboartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>

    
    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-commonsartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>

    <dependency>
        <groupId>com.itheimagroupId>
        <artifactId>tanhua-dubbo-interfaceartifactId>
        <version>1.0-SNAPSHOTversion>
    dependency>
dependencies>

<build>
    <finalName>tanhua-dubbo-dbfinalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <version>2.3.9.RELEASEversion>
        plugin>
    plugins>
build>

⑻. tanhua-model

编辑 tanhua-model/pom.xml 文件:

<dependencies>
    
    
    <dependency>
        <groupId>com.baomidougroupId>
        <artifactId>mybatis-plusartifactId>
    dependency>
dependencies>

4. Lombok

lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,尤其是针对pojo。

Lombok官网: https://projectlombok.org/

导入依赖:


<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <optional>trueoptional>
dependency>

安装IDEA插件:
Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第27张图片


5. 常用注解

  • @Data: 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  • @Setter: 注解在属性上;为属性提供 setting 方法
  • @Getter: 注解在属性上;为属性提供 getting 方法
  • @Slf4j: 注解在类上;为类提供一个 属性名为log 的 slf4j日志对象
  • @NoArgsConstructor: 注解在类上;为类提供一个无参的构造方法
  • @AllArgsConstructor: 注解在类上;为类提供一个全参的构造方法
  • @Builder: 使用Builder模式构建对象

⑴. @Data注解

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第28张图片

⑵. @Slf4j注解

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第29张图片

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第30张图片


⑶. @AllArgsConstructor、@NoArgsConstructor注解

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第31张图片


⑷. @Builder

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置_第32张图片
在这里插入图片描述



你可能感兴趣的:(Java,微服务,架构,1024程序员节)