# Logistics System
**Repository Path**: FisherKK/logistics-system
## Basic Information
- **Project Name**: Logistics System
- **Description**: 一个分布式的物理管理系统
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-11-09
- **Last Updated**: 2024-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Logistics System
## 介绍
一个分布式的物理管理系统
## 软件架构
采用微服务的架构方式, 对业务进行微服务的拆分:
1. 网关, 前端所有的请求按照接口规范请求网关, 由网关负责对进行路由转发, 跨域设置和微服务的负载均衡
2. 订单服务: 和订单有关的业务
3. 管理服务: 和员工车辆管理有关的业务
4. 登录服务: 和注册登录有关的业务
5. 地址服务: 和地址簿有关的业务
6. 模拟服务: 模拟现实中硬件的操作
## 编程规范
### 父项目中的依赖
父项目中已经存在的依赖有:
* 父项目已经继承了`spring-boot-starter-parent`
* 父项目对`spring-cloud-alibaba-dependencies`, `spring-cloud-dependencies`进行了版本控制管理
* `druid-spring-boot-starter` **数据库连接池**
* `mysql-connector-java `**数据库连接驱动**
* `mybatis-spring-boot-starter` **mybatis**
* `spring-boot-devtools`
* `spring-boot-configuration-processor`
* `spring-boot-starter-test`
* `lombok `
* `spring-cloud-starter-alibaba-nacos-discovery` **服务发现中心**
* `spring-cloud-starter-alibaba-nacos-config` **服务配置中心**
* `spring-cloud-starter-openfeign` **远程调用**
### 你需要做什么
* 如果你要新建一个Spring-Web项目, 实现MVC(Tomcat服务器), 那么你需要导入(不需要版本声明)
```xml
org.springframework.boot
spring-boot-starter-web
```
* 如果你需要使用规范的`R`响应数据格式, 请导入依赖
```xml
org.example
logistics-common
1.0-SNAPSHOT
```
### 服务发现
这是一个简单的demo, 在resources目录下新建`application.yml`文件, 添加配置信息
```yaml
spring:
cloud:
nacos:
discovery:
server-addr: 1.15.170.222:8848 # 标注服务地址
# 标注应用的名称
application:
name: logistics-gateway
```
### 服务注册
这是一个简单的demo, 在resources目录下新建`bootstrap.yml`文件, 添加配置信息
```properties
spring.application.name=logistics-test
spring.cloud.nacos.config.server-addr=1.15.170.222:8848
spring.cloud.nacos.config.namespace=9432ce1f-5e19-42fd-a0d2-6549f8c09267
# 配置命名空间
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=value.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true
# 扩展数据信息
```
具体的逻辑是:
* 每一个微服务有自己的**命名空间**, 会加载默认的配置信息
* 不同的配置在不同阶段使用**分组**的配置信息进行区分