目录

1:环境搭建

1.1:MYSQL数据库

1.1.1:导入相应的sql

1.2:Linux中的docker-compose方法集中部署

1.2.1:介绍

1.3:IDEA设置

1.3.1:基本要求

1.3.2:设置项目编码格式

1.3.3:设置Maven仓库

1.4:Maven模块分析

1.4.1:工程主体架构介绍

1.4.2:工程架构搭建

1.4.3:模块依赖分析

1.5:模块依赖

1.5.1:tanhua-parent父项目

1.5.2:tanhua-autoconfig(自动装配)

1.5.3:tanhua-model(实体类)

1.5.4:tanhua-commons(工具类)

1.5.5:tanhua-dubbo(父dubbo)

1.5.6:tanhua-dubbo-interface(将项目中的进行封装到接口模块中)

1.5.7:tanhua-dubbo-db:提供接口的实现类模块(暴露自己的实现提供给消费)

1.5.8:tanhua-dubbo-mongo:(mongodb数据库)

1.5.9:tanhua-app-server:消费者服务用来调用接口模块,消费提供者模块的实现

1.6:Lombok

1.6.1:配置安装

1.6.2:常用注解


1:环境搭建

1.1:MYSQL数据库

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

将资料中数据库表导入到MYSQL中

1.1.1:导入相应的sql

(1) 打开Navicat ,点击右键选择新建数据库,名字跟我们要导入的数据库的名字一样,字符集一般选utf-8

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

(3) 提示Successfully 导入成功后,可能在左侧看不到导入的数据库,关闭Navicat,重新打开即可看到

1.2:Linux中的docker-compose方法集中部署

  • 探花交友学习中,除MySQL数据库部署到本地电脑中。其他涉及到的所有组件都已经以docker形式安装到虚拟机中。我们只需要进入虚拟机,使用简单的命令即可。为了方便学习与减少基础服务占用的学习时间,全部使用docker-compose的方式集中式部署。这些文件在linux虚拟机中的/root/docker-file文件夹下

可视化工具的查看图:

虚拟机中的图片:

  • 每个文件夹中都包含一个docker-compose.yml配置文件,一键启动并部署应用。

#进入组件目录cd /root/docker-file/base/#执行docker-compose命令docker-compose up -d 

1.2.1:介绍

base

  • 其中包含redis,nacos,yapi,mongo

fastdfs

  • 包含fastdfs操作需要的组件

rmq

  • 包含RabbitMQ需要所有组件

recommend

  • 包含推荐系统需要所有组件

1.3:IDEA设置

1.3.1:基本要求

项目依赖环境(需提前安装好)

  • JDK1.8

  • Intellij Idea

  • maven-3.x以上

  • Git

  • UTF-8编码格式

1.3.2:设置项目编码格式

1.3.3:设置Maven仓库

  • 设置本地仓库,建议使用资料中提供好的仓库

1.4:Maven模块分析

1.4.1:工程主体架构介绍

父工程工程名称说明
tanhua-parenttanhua-autoconfig自动装配的工具类
tanhua-parenttanhua-model实体类模块
tanhua-parenttanhua-dubboDubbo子模块(可以理解为文件夹,管理dubbo模块)
tanhua-parenttanhua-app-server与手机端交互的入口模块
tanhua-parenttanhua-commons工具类模块
tanhua-dubbotanhua-dubbo-interfaceDubbo接口模块
tanhua-dubbotanhua-dubbo-dbDubbo服务模块(数据库部分)
tanhua-dubbotanhua-dubbo-mongoDubbo服务模块(MongoDB部分)

1.4.2:工程架构搭建

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

1.4.3:模块依赖分析

1.5:模块依赖

1.5.1:tanhua-parent父项目

父项目包含其他子模块,管理依赖

    4.0.0    com.czxy.tanhua    tanhua-parent    pom    1.0-SNAPSHOT            tanhua-app-server        tanhua-autoconfig        tanhua-commons        tanhua-dubbo        tanhua-model        tanhua-dubbo/tanhua-dubbo-db        tanhua-dubbo/tanhua-dubbo-interface        tanhua-dubbo/tanhua-dubbo-mongo                org.springframework.boot        spring-boot-starter-parent        2.3.9.RELEASE                8        8        5.1.47        2.11.0        1.0.9        2.5        2.0        2.5        3.3.2        1.3.2        3.5.6        3.4.1        1.18.8        4.0.5        Hoxton.SR10        2.2.5.RELEASE                                org.springframework.boot            spring-boot-starter-test            test                            junit            junit            4.12            test                            org.projectlombok            lombok                            cn.hutool            hutool-all            5.4.3                            com.alibaba            fastjson            1.2.8                                                    io.netty                netty-bom                4.1.59.Final                pom                import                                        io.projectreactor                reactor-bom                2020.0.4                pom                import                                        io.projectreactor.netty                reactor-netty                0.9.8.RELEASE                                        org.springframework.cloud                spring-cloud-dependencies                ${spring-cloud.version}                pom                import                                        com.alibaba.cloud                spring-cloud-alibaba-dependencies                ${spring-cloud-alibaba.version}                pom                import                                        joda-time                joda-time                ${joda-time.version}                                                    com.baomidou                mybatis-plus-boot-starter                ${mybatis.mybatis-plus.version}                                        com.baomidou                mybatis-plus                ${mybatis.mybatis-plus.version}                                                    mysql                mysql-connector-java                ${mysql.version}                                        org.mongodb                mongodb-driver-sync                ${mongodb.version}                                        org.projectlombok                lombok                true                ${lombok.version}                                        org.apache.commons                commons-lang3                ${commons-lang3.version}                                                    com.fasterxml.jackson.core                jackson-databind                ${jackson.version}                                        com.alibaba                druid                ${druid.version}                                        commons-codec                commons-codec                1.11                                                                            org.apache.maven.plugins                maven-compiler-plugin                3.2                                    1.8                    1.8                    UTF-8                                        <!-- 打包可运行的spring boot项目 【需要时,拷贝所需项目】                            org.springframework.boot                spring-boot-maven-plugin                                    启动类                                        -->            

1.5.2:tanhua-autoconfig(自动装配)

Spring自动装配工具类:阿里云发送短信,图片上传,图片人脸识别

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        4.0.0    tanhua-autoconfig            8        8        UTF-8                                    com.aliyun            aliyun-java-sdk-core            4.5.3                            com.aliyun            dysmsapi20170525            2.0.1                                    com.aliyun.oss            aliyun-sdk-oss            3.10.2                                    com.aliyun            facebody20191230            1.0.10                                    com.baidu.aip            java-sdk            4.8.0                                    org.springframework.boot            spring-boot-starter-web                            com.easemob.im            im-sdk-core            0.2.5                            com.aliyun            aliyun-java-sdk-green            3.6.1            

1.5.3:tanhua-model(实体类)

实体类模块主要是封装具体的实体类

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        4.0.0    tanhua-model            8        8        UTF-8                                    com.baomidou            mybatis-plus                                    com.baomidou            mybatis-plus-generator            3.4.1                                    org.apache.velocity            velocity-engine-core            2.3            

1.5.4:tanhua-commons(工具类)

工具类:目前包含了JwtUtils

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        4.0.0    tanhua-commons            8        8        UTF-8                                    org.apache.commons            commons-lang3                            commons-codec            commons-codec                            joda-time            joda-time                                    io.jsonwebtoken            jjwt            0.9.1            

1.5.5:tanhua-dubbo(父dubbo)

dubbo模块属于子模块,在子模块里面还有三个子模块

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        4.0.0    tanhua-dubbo            8        8        UTF-8                            org.springframework.boot            spring-boot-starter-web                            org.projectlombok            lombok                            org.apache.commons            commons-lang3                            com.fasterxml.jackson.core            jackson-databind                            commons-codec            commons-codec                            joda-time            joda-time                                    com.alibaba.cloud            spring-cloud-starter-dubbo                                    com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                            com.czxy.tanhua            tanhua-commons            1.0-SNAPSHOT                            com.czxy.tanhua            tanhua-dubbo-interface            1.0-SNAPSHOT            

1.5.6:tanhua-dubbo-interface(将项目中的进行封装到接口模块中)

将提供者的提供的接口实现方法专门封装到一个接口模块中

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        ../../pom.xml        4.0.0    tanhua-dubbo-interface            8        8        UTF-8                            com.czxy.tanhua            tanhua-model            1.0-SNAPSHOT            

1.5.7:tanhua-dubbo-db:提供接口的实现类模块(暴露自己的实现提供给消费)

提供者模块,暴露自己的接口实现类供消费者调用

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        ../../pom.xml        4.0.0    tanhua-dubbo-db            8        8        UTF-8                            org.springframework.boot            spring-boot-starter-web                            com.baomidou            mybatis-plus-boot-starter                            mysql            mysql-connector-java                            com.alibaba            druid                            org.projectlombok            lombok                            org.apache.commons            commons-lang3                            com.fasterxml.jackson.core            jackson-databind                            commons-codec            commons-codec                            joda-time            joda-time                                    com.alibaba.cloud            spring-cloud-starter-dubbo                                    com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                            com.czxy.tanhua            tanhua-dubbo-interface            1.0-SNAPSHOT            

1.5.8:tanhua-dubbo-mongo:(mongodb数据库)

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        ../../pom.xml        4.0.0    tanhua-dubbo-mongo            8        8        UTF-8    

1.5.9:tanhua-app-server:消费者服务用来调用接口模块,消费提供者模块的实现

app端请求到这个模块,该模块接收请求,处理请求。

            tanhua-parent        com.czxy.tanhua        1.0-SNAPSHOT        4.0.0    tanhua-app-server            8        8        UTF-8                            org.springframework.boot            spring-boot-starter-web                                    org.springframework.boot            spring-boot-starter-data-redis                                    org.projectlombok            lombok                                    org.apache.commons            commons-lang3                            com.fasterxml.jackson.core            jackson-databind                            commons-codec            commons-codec                            joda-time            joda-time                                    io.jsonwebtoken            jjwt            0.9.1                                    com.github.tobato            fastdfs-client            1.26.7                                                ch.qos.logback                    logback-classic                                                                com.alibaba.cloud            spring-cloud-starter-dubbo                                    com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                                    org.springframework.boot            spring-boot-starter-amqp                            com.czxy.tanhua            tanhua-dubbo-interface            1.0-SNAPSHOT                            com.czxy.tanhua            tanhua-commons            1.0-SNAPSHOT                            com.czxy.tanhua            tanhua-autoconfig            1.0-SNAPSHOT                            junit            junit            

1.6:Lombok

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

  • 官网:Project Lombok

1.6.1:配置安装

    org.projectlombok    lombok    true

安装IDEA插件:

如果不安装插件,程序可以正常执行,但是看不到生成的一些代码,如:get set方法。

1.6.2:常用注解

  • @Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals canEqual hashCode toString 方法

  • @Setter:注解在属性上;为属性提供 setting 方法

  • @Getter:注解在属性上;为属性提供 getting 方法

  • @Slf4j:注解在类上;为类提供一个 属性名为log 的 slf4j日志对象

  • @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法

  • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

  • @Builder:使用Builder模式构建对象