网站建设推广话术,做cpa用什么网站,建网站简易软件,恩施做网站目录 1#xff1a;环境搭建
1.1#xff1a;MYSQL数据库
1.1.1#xff1a;导入相应的sql
1.2#xff1a;Linux中的docker-compose方法集中部署
1.2.1#xff1a;介绍
1.3#xff1a;IDEA设置
1.3.1#xff1a;基本要求
1.3.2#xff1a;设置项目编码格式
1.3.3环境搭建
1.1MYSQL数据库
1.1.1导入相应的sql
1.2Linux中的docker-compose方法集中部署
1.2.1介绍
1.3IDEA设置
1.3.1基本要求
1.3.2设置项目编码格式
1.3.3设置Maven仓库
1.4Maven模块分析
1.4.1工程主体架构介绍
1.4.2工程架构搭建
1.4.3模块依赖分析
1.5模块依赖
1.5.1tanhua-parent父项目
1.5.2tanhua-autoconfig(自动装配)
1.5.3tanhua-model实体类
1.5.4tanhua-commons工具类
1.5.5tanhua-dubbo父dubbo
1.5.6tanhua-dubbo-interface(将项目中的进行封装到接口模块中)
1.5.7tanhua-dubbo-db提供接口的实现类模块暴露自己的实现提供给消费
1.5.8tanhua-dubbo-mongo:(mongodb数据库)
1.5.9tanhua-app-server消费者服务用来调用接口模块消费提供者模块的实现
1.6Lombok
1.6.1配置安装
1.6.2常用注解 1环境搭建
1.1MYSQL数据库
数据库表说明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.2Linux中的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 其中包含redisnacosyapimongo
fastdfs 包含fastdfs操作需要的组件
rmq 包含RabbitMQ需要所有组件
recommend 包含推荐系统需要所有组件
1.3IDEA设置
1.3.1基本要求
项目依赖环境需提前安装好 JDK1.8 Intellij Idea maven-3.x以上 Git UTF-8编码格式
1.3.2设置项目编码格式
1.3.3设置Maven仓库 设置本地仓库建议使用资料中提供好的仓库
1.4Maven模块分析
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.1tanhua-parent父项目
父项目包含其他子模块管理依赖
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-parent/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduletanhua-app-server/modulemoduletanhua-autoconfig/modulemoduletanhua-commons/modulemoduletanhua-dubbo/modulemoduletanhua-model/modulemoduletanhua-dubbo/tanhua-dubbo-db/modulemoduletanhua-dubbo/tanhua-dubbo-interface/modulemoduletanhua-dubbo/tanhua-dubbo-mongo/module/modulesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.9.RELEASE/version/parentpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetmysql.version5.1.47/mysql.versionjackson.version2.11.0/jackson.versiondruid.version1.0.9/druid.versionservlet-api.version2.5/servlet-api.versionjsp-api.version2.0/jsp-api.versionjoda-time.version2.5/joda-time.versioncommons-lang3.version3.3.2/commons-lang3.versioncommons-io.version1.3.2/commons-io.versionmybatis.version3.5.6/mybatis.versionmybatis.mybatis-plus.version3.4.1/mybatis.mybatis-plus.versionlombok.version1.18.8/lombok.versionmongo.version4.0.5/mongo.versionspring-cloud.versionHoxton.SR10/spring-cloud.versionspring-cloud-alibaba.version2.2.5.RELEASE/spring-cloud-alibaba.version/properties!--通用依赖--dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.4.3/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.8/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdio.netty/groupIdartifactIdnetty-bom/artifactIdversion4.1.59.Final/versiontypepom/typescopeimport/scope/dependencydependencygroupIdio.projectreactor/groupIdartifactIdreactor-bom/artifactIdversion2020.0.4/versiontypepom/typescopeimport/scope/dependencydependencygroupIdio.projectreactor.netty/groupIdartifactIdreactor-netty/artifactIdversion0.9.8.RELEASE/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactIdversion${joda-time.version}/version/dependency!-- mybatis-plus插件依赖 --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion${mybatis.mybatis-plus.version}/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus/artifactIdversion${mybatis.mybatis-plus.version}/version/dependency!-- MySql --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependencydependencygroupIdorg.mongodb/groupIdartifactIdmongodb-driver-sync/artifactIdversion${mongodb.version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optionalversion${lombok.version}/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion${commons-lang3.version}/version/dependency!-- Jackson Json处理工具包 --dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion${jackson.version}/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion${druid.version}/version/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactIdversion1.11/version/dependency/dependencies/dependencyManagementbuildplugins!-- java编译插件 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.2/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin!-- 打包可运行的spring boot项目 【需要时拷贝所需项目】plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationmainClass启动类/mainClass/configuration/plugin--/plugins/build
/project
1.5.2tanhua-autoconfig(自动装配)
Spring自动装配工具类阿里云发送短信图片上传图片人脸识别
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-autoconfig/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--阿里云核心API--dependencygroupIdcom.aliyun/groupIdartifactIdaliyun-java-sdk-core/artifactIdversion4.5.3/version/dependencydependencygroupIdcom.aliyun/groupIdartifactIddysmsapi20170525/artifactIdversion2.0.1/version/dependency!--阿里云oss存储API--dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.10.2/version/dependency!--阿里云人识别--dependencygroupIdcom.aliyun/groupIdartifactIdfacebody20191230/artifactIdversion1.0.10/version/dependency!--百度人脸识别API--dependencygroupIdcom.baidu.aip/groupIdartifactIdjava-sdk/artifactIdversion4.8.0/version/dependency!--springboot基础起步依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.easemob.im/groupIdartifactIdim-sdk-core/artifactIdversion0.2.5/version/dependencydependencygroupIdcom.aliyun/groupIdartifactIdaliyun-java-sdk-green/artifactIdversion3.6.1/version/dependency/dependencies
/project
1.5.3tanhua-model实体类
实体类模块主要是封装具体的实体类 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-model/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--MybatisPlus依赖--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus/artifactId/dependency!-- 代码生成器--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.4.1/version/dependency!-- velocity模板引擎--dependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-engine-core/artifactIdversion2.3/version/dependency/dependencies
/project
1.5.4tanhua-commons工具类
工具类目前包含了JwtUtils
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-commons/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!--工具包--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactId/dependencydependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactId/dependency!--jwt依赖--dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactIdversion0.9.1/version/dependency/dependencies/project
1.5.5tanhua-dubbo父dubbo dubbo模块属于子模块在子模块里面还有三个子模块
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-dubbo/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactId/dependencydependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactId/dependency!-- Dubbo Spring Cloud Starter --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-dubbo/artifactId/dependency!-- Spring Cloud Nacos Service Discovery --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-commons/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-dubbo-interface/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies
/project
1.5.6tanhua-dubbo-interface(将项目中的进行封装到接口模块中)
将提供者的提供的接口实现方法专门封装到一个接口模块中
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/versionrelativePath../../pom.xml/relativePath/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-dubbo-interface/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-model/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies
/project
1.5.7tanhua-dubbo-db提供接口的实现类模块暴露自己的实现提供给消费 提供者模块暴露自己的接口实现类供消费者调用
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/versionrelativePath../../pom.xml/relativePath/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-dubbo-db/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactId/dependencydependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactId/dependency!-- Dubbo Spring Cloud Starter --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-dubbo/artifactId/dependency!-- Spring Cloud Nacos Service Discovery --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-dubbo-interface/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies
/project
1.5.8tanhua-dubbo-mongo:(mongodb数据库)
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/versionrelativePath../../pom.xml/relativePath/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-dubbo-mongo/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties/project
1.5.9tanhua-app-server消费者服务用来调用接口模块消费提供者模块的实现
app端请求到这个模块该模块接收请求处理请求。
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdtanhua-parent/artifactIdgroupIdcom.czxy.tanhua/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdtanhua-app-server/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--SpringDataRedis依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--lombok依赖--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--工具包--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactId/dependencydependencygroupIdjoda-time/groupIdartifactIdjoda-time/artifactId/dependency!--jwt依赖--dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactIdversion0.9.1/version/dependency!--fastdfs文件存储--dependencygroupIdcom.github.tobato/groupIdartifactIdfastdfs-client/artifactIdversion1.26.7/versionexclusionsexclusiongroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactId/exclusion/exclusions/dependency!-- Dubbo Spring Cloud Starter--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-dubbo/artifactId/dependency!-- Spring Cloud Nacos Service Discovery--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--RabbitMQ--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-dubbo-interface/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-commons/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdcom.czxy.tanhua/groupIdartifactIdtanhua-autoconfig/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependency/dependencies/project
1.6Lombok lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码尤其是针对pojo。 官网Project Lombok
1.6.1配置安装
!--简化代码的工具包--
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional
/dependency
安装IDEA插件
如果不安装插件程序可以正常执行但是看不到生成的一些代码如get set方法。
1.6.2常用注解 Data注解在类上提供类所有属性的 getting 和 setting 方法此外还提供了equals canEqual hashCode toString 方法 Setter注解在属性上为属性提供 setting 方法 Getter注解在属性上为属性提供 getting 方法 Slf4j注解在类上为类提供一个 属性名为log 的 slf4j日志对象 NoArgsConstructor注解在类上为类提供一个无参的构造方法 AllArgsConstructor注解在类上为类提供一个全参的构造方法 Builder使用Builder模式构建对象