> For the complete documentation index, see [llms.txt](https://taocares.gitbook.io/development-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://taocares.gitbook.io/development-guide/master.md).

# 准备工作

## 开发工具

推荐使用IntelliJ IDEA开发，需要安装Lombok Plugin。

## 开发环境

如果需要使用注册中心等组件进行本地服务联调，按照以下步骤搭建环境：

1. 下载并安装Spring Boot CLI：<https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.0.4.RELEASE/spring-boot-cli-2.0.4.RELEASE-bin.zip>
2. 使用Spring Boot CLI安装Spring Cloud CLI：

   `spring install org.springframework.cloud:spring-cloud-cli:2.0.0.BUILD-SNAPSHOT`
3. 指定需要启动的服务端（spring cloud eureka必选，其他根据需要选择）：

   `spring cloud eureka configserver zipkin hystrixdashboard`
4. 下载并安装RabbitMQ：<http://www.rabbitmq.com/download.html>

## 模块依赖

系统基于Spring Boot `2.0.4.RELEASE`和Spring Cloud `Finchley.SR1`开发。

#### 开发依赖（**\[M]**&#x4EE3;表必选依赖，**\[O]**&#x4EE3;表可选依赖）：

* **\[M]**&#x73;pring-boot-starter-web：Web开发依赖，提供MVC等功能
* **\[M]**&#x73;pring-boot-starter-data-jpa：JPA依赖，提供数据持久层方案
* **\[O]**&#x73;pring-boot-starter-cache：缓存依赖，提供缓存解决方案
* **\[O]**&#x73;pring-cloud-starter-netflix-hystrix：熔断依赖，提供熔断机制
* **\[O]**&#x73;pring-cloud-starter-openfeign：需要远程调用其他服务的模块，增加此依赖
* **\[O]**&#x73;pring-cloud-stream：需要事件驱动的模块，增加此依赖
* **\[O]**&#x73;pring-cloud-stream-binder-rabbit：需要事件驱动的模块，增加此依赖
* **\[O]**&#x6C;ombok：提供便捷的注解，简化POJO配置
* **\[M]**&#x73;pringfox-swagger2：Swagger API定义工具
* **\[M]**&#x73;pringfox-swagger-ui：Swagger API定义页面
* **\[M]**&#x63;ommons-lang：基础的工具
* **\[M]**&#x63;ommons-beans：实体映射工具
* **\[M]**&#x63;ommons-jpa：JPA查询工具

#### 运维依赖（所有业务模块必选依赖）：

* spring-boot-starter-security：Spring Security依赖，开放监控页面权限
* spring-boot-admin-starter-client：系统运行状态监控
* spring-cloud-starter-netflix-eureka-client：服务注册和发现
* spring-cloud-starter-config：统一配置管理
* spring-cloud-starter-zipkin：服务调用跟踪

#### 其他依赖（根据需要选择）：

* spring-cloud-starter-netflix-zuul：网关模块
* spring-boot-admin-starter-server：系统监控服务端
* spring-cloud-starter-netflix-eureka-server：注册中心
* spring-cloud-config-server：配置中心
* spring-cloud-starter-netflix-hystrix-dashboard：熔断监控服务端
* spring-cloud-starter-netflix-turbine：熔断监控汇总服务端
* spring-boot-devtools：开发者工具，提供类的热部署等功能
* spring-boot-starter-test：基本的测试库依赖
