项目
博客
文档
归档
资源链接
关于我
项目
博客
文档
归档
资源链接
关于我
02| 项目基础数据构建&技术选型&项目构建
2024-07-29
·
·
原创
·
·
本文共 929个字,预计阅读需要 4分钟。
#### 基础数据构建 项目结构:**前后端分离架构,容器编排部署** 独立数据库: - 用户服务数据库: p_nla_user (Project_New Lead Acquisition_User 拉新营销项目用户数据库) - 商品服务数据库: p_nla_product - 优惠券服务数据库: p_nla_coupon - 订单服务数据库: p_nla_order 用户服务数据库中创建表:`user`、`address` 用户表 ```sql CREATE TABLE `user` ( `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(128) DEFAULT NULL COMMENT '昵称', `pwd` varchar(124) DEFAULT NULL COMMENT '密 码', `head_img` varchar(524) DEFAULT NULL COMMENT '头像', `slogan` varchar(524) DEFAULT NULL COMMENT '用户签名', `sex` tinyint(2) DEFAULT '1' COMMENT '0-女,1-男', `points` int(10) DEFAULT '0' COMMENT '积 分', `create_time` datetime DEFAULT NULL, `mail` varchar(64) DEFAULT NULL COMMENT '邮 箱', `secret` varchar(12) DEFAULT NULL COMMENT '盐,用于个人敏感信息处理', PRIMARY KEY (`id`), UNIQUE KEY `mail_idx` (`mail`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ``` 收货地址表 ```sql CREATE TABLE `address` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAULT NULL COMMENT '用户id', `default_status` int(1) DEFAULT NULL COMMENT '是否默认收货地址:0-否;1-是', `receive_name` varchar(64) DEFAULT NULL COMMENT '收发货人姓名', `phone` varchar(64) DEFAULT NULL COMMENT '收货人电话', `province` varchar(64) DEFAULT NULL COMMENT '省/直辖市', `city` varchar(64) DEFAULT NULL COMMENT '市', `region` varchar(64) DEFAULT NULL COMMENT '区', `detail_address` varchar(200) DEFAULT NULL COMMENT '详细地址', `create_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COMMENT='电商-公司收发货地址表'; ``` #### 技术选型 - SpringCloud - 通信方式:http restful - 注册中心:eureka - 配置中心:config - 断路器:hystrix - 网关:zuul/gateway - 分布式追踪系统:sleuth+zipkin - Spring Cloud Alibaba - 通信方式:http restful - 服务注册发现:Nacos - 服务限流降级:Sentinel - 分布配置中心:Nacos - 服务网关:SpringCloud Gateway - 服务之间调用:Feign、Ribbon - 链路追踪:Sleuth+Zipkin SpringCloud很多组件是基于第三方整合,`⽬前多个已经不更新了`,比如zuul、eureka、hystrix等 版本选择: - SpringBoot 2.3.3.RELEASE 版本 - Spring Cloud Hoxton.SR8 版本 - AlibabaCloud 2.2.1.RELEASE 版本 #### 项目工程分类 1. 公共模块:nla-common 2. 商品服务模块:nla-product-service 3. 用户服务模块:nla-user-service 4. 订单服务模块:nla-order-service 5. 优惠券服务模块:nla-coupon-service 6. 网关模块:nla-gateway 父级项目的依赖`pom.xml`: ```xml
4.0.0
cn.nla
nla-shop
1.0-SNAPSHOT
pom
拉新营销平台
nla-common
nla-product-service
nla-user-service
nla-order-service
nla-coupon-service
nla-gateway
11
11
11
2.3.3.RELEASE
Hoxton.SR8
2.2.1.RELEASE
3.4.0
1.18.16
3.9
1.15
3.0.0
yuan-cloud
true
org.springframework.boot
spring-boot-dependencies
${spring.boot.version}
pom
import
org.springframework.cloud
spring-cloud-dependencies
${spring.cloud.version}
pom
import
com.alibaba.cloud
spring-cloud-alibaba-dependencies
${alibaba.cloud.version}
pom
import
com.baomidou
mybatis-plus-boot-starter
${mybatisplus.boot.starter.version}
org.projectlombok
lombok
${lombok.version}
provided
org.apache.commons
commons-lang3
${commons.lang3.version}
commons-codec
commons-codec
${commons.codec.version}
io.springfox
springfox-boot-starter
${springfox.boot.starter.version}
maven-ali
http://maven.aliyun.com/nexus/content/groups/public//
true
true
always
fail
public
aliyun nexus
http://maven.aliyun.com/nexus/content/groups/public/
true
false
org.springframework.boot
spring-boot-maven-plugin
${spring.boot.version}
true
true
``` **提效利器**:`Lombok、MybaitsPlus、SwaggerUI` Lombok常见注解: @Getter/@Setter,@ToString,@EqualsAndHashCode,@NoArgsConstructor,@AllArgsConstructor,@Data,@Log / @Slf4j nla-common项目的依赖: ```xml
org.projectlombok
lombok
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
com.baomidou
mybatis-plus-boot-starter
com.baomidou
mybatis-plus-generator
3.4.1
org.apache.velocity
velocity-engine-core
2.0
io.springfox
springfox-boot-starter
``` nla-user-service项目依赖: ```xml
cn.nla
nla-common
1.0-SNAPSHOT
org.projectlombok
lombok
```