# Test **Repository Path**: haimianys/test ## Basic Information - **Project Name**: Test - **Description**: 测试用2023/10/22 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-22 - **Last Updated**: 2024-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 搭建后端环境 (我是zhc的分支) ## 一、SQL创建建议 (参考 1. 可以参考创建时间和修改时间的板子,实现通过MYSQL自动实现 2. DEFAULT字段的使用 ```sql CREATE TABLE `chapter` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `course_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '课程ID', `title` varchar(50) NOT NULL COMMENT '章节名称', `sort` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '显示排序', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `is_deleted` tinyint(3) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='课程'; ``` - 所有表的主键 id - 外联表的外键 表名+下划线+id --- ## 二、maven聚合工程搭建 ### 一、项目结构简介 #### 1、gateway 网关 > gateway ——网关:负责设置nacos网关实现服务分发和负载均衡 配置yml文件如下: ```yml server: # 网关所在的地址 port: 8888 spring: application: name: api-gateway cloud: nacos: discovery: server-addr: localhost:8848 gateway: #启动自动匹配服务地址 discovery: locator: enabled: true ``` #### 2、model 静态资源区 > model—— 静态资源区,负责存放静态资源,可以放置工具类和实体类(无需运行的一个区 ![image-20221029121807325](images/image-20221029121807325.png) #### 3、业务模块 > service总模块,内部创建自己的模块,开发自己的部分 ![image-20221029122024945](images/image-20221029122024945.png) 配置的yml文件如下:**Redis的配置先保留,运行不会冲突** ```yml server: port: 8009 spring: application: name: service-user # 数据库配置 datasource: url: jdbc:mysql://localhost:3306/jx220523_demotest_db?useUnicode=true&characterEncoding=UTF-8&useSSL=false driver-class-name: com.mysql.jdbc.Driver username: root password: root # 解决springboot的版本更新,导致的swagger2的异常 mvc: pathmatch: matching-strategy: ant_path_matcher # redis 相关的配置信息 redis: port: 6379 # 服务器端口 host: localhost # r服务器地址 database: 0 # 数据库索引(默认0) jedis: pool: max-active: 50 # 连接池最大连接数(使用负值表示没有限制) max-wait: 3000ms # 连接池最大阻塞等待时间(使用负值表示没有限制) max-idle: 20 # 连接池中的最大空闲连接数 min-idle: 2 # 连接池中的最小空闲连接数 connect-timeout: 5000ms # 连接超时时间(毫秒) mybatis: # config-location: /mappers/*Mapper.xml mapper-locations: classpath:mappers/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` ### 二、小组命名和端口规范 #### 1、实体类 1. 所有实体类都要继承基类`BaseEntity` 2. 类名和字段名使用**IDEA自带的生产POJO功能创建** - 创建后删除相关字段,加入lombok的`@Data`注释 3. **时间相关的字段都修改成String类型** 举个例子 ![image-20221029143601906](images/image-20221029143601906.png) #### 2、服务名创建 统一命名为 “service-服务名”,比如service-user 、 service-rider等等。 在nacos中的命名也是按照以上规范。 #### 3、端口规范 - 服务端口:**8000~8010范围内** - nacos端口配置:8848 - 网关端口(已配置):8888 - Redis端口(按默认的):6379 - 数据库端口 MySQL : 3306 --- #### 4、访问路径规范 统一按以下路径命名:**模块名+服务名+具体业务**。**全部小写英文** > 比如用户模块、商品服务、获取商品列表服务命名为`user/goods/findall` 最终效果如下: 1. 未经过网关就可以访问的路径:http://localhost:8009/user/goods/findall 2. 经过网关可以访问的路径:http://localhost:8888/service-user/user/goods/findall --- ### 三、具体操作 1. 新建模块 ![image-20221029150140870](images/image-20221029150140870.png) 2. 选择父类 ![image-20221029150258064](images/image-20221029150258064.png) 3. 模块结构如下 ![image-20221029150618762](images/image-20221029150618762.png) 4. 其他的就是正常搭建自己的controller,mapper,service层即可 # Git操作及规范 ### 一、分支命名规范 #### \1. 主分支(一个):master 自动生成,正式发布的版本 #### \2. 开发分支(一个):develop,所有功能的集成分支 将开发分支集成到develop,通过测试后再合并到master master和develop需要进行权限限制 #### \3. 功能分支(多个):feather 从develop分出,开发某种特定功能,经过test分支测试后,合并到develop 命名规范(建议):**`feature--author--功能名称`** 定期合并,一般一周一次 ### 二、GIT使用规范 - model模块为公共的模块,只允许增加,如果需要修改字段要通知组长或对应的负责人 - 严禁去修改别人完成的模块 - push(上传)分支时,只选择自己的branch,**不要选择选择Push tags—— all**。这个是上传本地的全部分支,极有可能会影响其他人的分支 ![image-20221029152246927](images/image-20221029152246927.png) ### 三、GIT结合IDEA的操作 #### 1、在命令行窗口的操作指令 (参考 常用指令 ![img](images/011500266295799.jpg) #### 2、IDEA上下载文件并操作 1. **复制远程仓库的地址** ![image-20221029155043699](images/image-20221029155043699.png) 2. 找一个干净目录放置项目,拉取后等待build完成 ![image-20221029162331509](images/image-20221029162331509.png) 3. 新鲜的项目就下好了 4. 新建自己的分支 image-20221029162512208 ![image-20221029162635338](images/image-20221029162635338.png) 5. 进行自己的部分的的代码修改 6. 完成修改后进入commit界面 ![image-20221029162758806](images/image-20221029162758806.png) 查看刚才创建好的commit ![image-20221029162850323](images/image-20221029162850323.png) 7. 推送自己的分支 ![image-20221029162912095](images/image-20221029162912095.png) ![image-20221029163001056](images/image-20221029163001056.png) 8. 进到线上查看,检查文件和分支没问题即可的即可 --- #### 3、合并操作(重要 > 自己的功能开发一部分后要和develop分支进行合并,具体操作如下 1. 在所有合并前,根据**先拉后推**原则,需要先从远程仓库拉取一次,再执行合并操作,最后才是推送。 IDEA的拉取操作如下: ![image-20221029165547325](images/image-20221029165547325.png) ![image-20221029165601453](images/image-20221029165601453.png) 2. 合并的情况分为简单和复杂两种情况:需要具体分析具体讨论: **简单的情况**,比如在文件没有冲突的时候,使用`git merge 分支名`:将分支名的代码合并到当前所在分支。 IDEA上也有merge操作: ![image-20221029163613507](images/image-20221029163613507.png) --- **困难情况,当文件出现冲突时,需要手动解决** > 举个例子,先要把功能分支合并到分开分支内,直接merge会爆红 1. ![image-20221029164519493](images/image-20221029164519493.png) 2. ![image-20221029164545711](images/image-20221029164545711.png) 3. ![image-20221029164736734](images/image-20221029164736734.png) 4. 修改完成后点击右下角的apply就可以正常提交develop分支了 5. 合并后可以看到分支的路线 ![image-20221029165052096](images/image-20221029165052096.png) 6. 确认无误后就可以删除掉没用的分支