|
@@ -0,0 +1,263 @@
|
|
|
+# Java后端开发手册
|
|
|
+
|
|
|
+### 技术栈介绍
|
|
|
+
|
|
|
+核心框架:spring boot 2.1.2.RELEASE
|
|
|
+
|
|
|
+安全框架: spring security 2.1.2.RELEASE
|
|
|
+
|
|
|
+注册中心:eureka
|
|
|
+
|
|
|
+网关:spring cloud gateway
|
|
|
+
|
|
|
+服务监控:spring boot admin
|
|
|
+
|
|
|
+请求链追踪:zipkin-server 2.12.0
|
|
|
+
|
|
|
+服务间调用:feign 10.1.0
|
|
|
+
|
|
|
+http框架:okhttp3
|
|
|
+
|
|
|
+表单校验: hibernate-validator 6.0.14.Final
|
|
|
+
|
|
|
+数据库连接池:druid 1.1.10
|
|
|
+
|
|
|
+持久层:mybatis 3.4.6
|
|
|
+
|
|
|
+缓存框架:spring-data-redis 2.1.4.RELEASE、lettuce 5.1.3.RELEASE
|
|
|
+
|
|
|
+日志管理:logback 1.2.3、slf4j 1.7.25
|
|
|
+
|
|
|
+定时任务:quartz 2.3.0
|
|
|
+
|
|
|
+工作流引擎:flowable 6.4.1
|
|
|
+
|
|
|
+消息队列:rocketMQ
|
|
|
+
|
|
|
+性能测试框架:contiperf 2.3.4
|
|
|
+
|
|
|
+验证码:kaptcha 2.3.2
|
|
|
+
|
|
|
+配置文件加密:jasypt 2.1.1
|
|
|
+
|
|
|
+工具类:lombok 1.18.2、joda-time 2.10.1、easyexcel 1.1.2-beta5、commons-lang3 3.3.2、pinyin4j 2.5.1、pagehelper 5.1.8、swagger 2.9.2
|
|
|
+
|
|
|
+### 基础环境
|
|
|
+
|
|
|
+操作系统:Ubuntu 18.04.1 LTS
|
|
|
+
|
|
|
+代码仓库:Git 2.17.1
|
|
|
+
|
|
|
+发版构建工具:Jenkins ver. 2.150.1、JDK 1.8.0_191、Maven 3.6.0
|
|
|
+
|
|
|
+接口文档管理:YApi 1.4.3、Swagger 2.9.2
|
|
|
+
|
|
|
+Maven私服:Nexus 3.15.2-01
|
|
|
+
|
|
|
+### 代码生成器介绍
|
|
|
+
|
|
|
+项目:wisdom-generator
|
|
|
+
|
|
|
+使用spring boot + velocity模板引擎实现,根据已设计好的表结构,完成dao、service、controller三层代码自动生成,并同时生成swagger文档以及基础的表单校验
|
|
|
+
|
|
|
+### 项目工程介绍
|
|
|
+
|
|
|
+##### 框架
|
|
|
+
|
|
|
+* wisdom-common (共通包,共通配置、工具类、通用bean) http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-common.git
|
|
|
+* wisdom-ds (动态数据源)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-ds.git
|
|
|
+* wisdom-monitor (spring cloud服务监控)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-monitor.git
|
|
|
+* wisdom-track (服务调用链追踪)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-track.git
|
|
|
+* wisdom-gateway (服务网关)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-gateway.git
|
|
|
+* wisdom-center (服务注册中心)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-center.git
|
|
|
+* wisdom-parent (父pom,管理依赖包版本)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-parent.git
|
|
|
+
|
|
|
+##### 业务
|
|
|
+
|
|
|
+* wisdom-asset (资产管理系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-asset.git
|
|
|
+* wisdom-bill (账单管理系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-bill.git
|
|
|
+* wisdom-platform (平台系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-platform.git
|
|
|
+* wisdom-serve (物业服务系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-serve.git
|
|
|
+* wisdom-payment (支付网关)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-payment.git
|
|
|
+* wisdom-auth (授权中心)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-auth.git
|
|
|
+* wisdom-flow (工作流模块)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-flow.git
|
|
|
+* wisdom-push (推送系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-push.git
|
|
|
+* wisdom-file (文件系统)http://139.159.196.162:3000/WisdomCity-JAVA/wisdom-file.git
|
|
|
+
|
|
|
+### 开发步骤
|
|
|
+
|
|
|
+1. 原型评估
|
|
|
+
|
|
|
+2. 接口设计及接口文档编写
|
|
|
+
|
|
|
+3. 数据库表设计
|
|
|
+
|
|
|
+4. 代码生成
|
|
|
+
|
|
|
+5. 代码编写完善
|
|
|
+
|
|
|
+6. 功能发版
|
|
|
+
|
|
|
+7. 与前端联调
|
|
|
+
|
|
|
+8. 交付测试,bug跟踪
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### 项目工程基础配置
|
|
|
+
|
|
|
+##### maven私服配置
|
|
|
+
|
|
|
+```xml
|
|
|
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
|
|
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
|
|
+ <localRepository>D:/usr/bin/Java/apache-maven-3.5.2/maven-dependcies</localRepository>
|
|
|
+ <pluginGroups>
|
|
|
+ </pluginGroups>
|
|
|
+ <proxies>
|
|
|
+ </proxies>
|
|
|
+ <servers>
|
|
|
+ <!-- 智慧城私服 -->
|
|
|
+ <server>
|
|
|
+ <id>wisdom</id>
|
|
|
+ <username>admin</username>
|
|
|
+ <password>WisdomCity@2019</password>
|
|
|
+ </server>
|
|
|
+ </servers>
|
|
|
+ <mirrors>
|
|
|
+ <!-- 智慧城私服 -->
|
|
|
+ <mirror>
|
|
|
+ <id>wisdom</id>
|
|
|
+ <mirrorOf>central</mirrorOf>
|
|
|
+ <url>http://139.159.210.228:8081/repository/maven-public/</url>
|
|
|
+ </mirror>
|
|
|
+ <!-- 智慧城私服 -->
|
|
|
+ <mirror>
|
|
|
+ <id>spring</id>
|
|
|
+ <mirrorOf>spring-milestones</mirrorOf>
|
|
|
+ <url>http://139.159.210.228:8081/repository/spring-milestones/</url>
|
|
|
+ </mirror>
|
|
|
+ </mirrors>
|
|
|
+ <profiles>
|
|
|
+ <profile>
|
|
|
+ <id>wisdom</id>
|
|
|
+ <repositories>
|
|
|
+ <repository>
|
|
|
+ <id>central</id>
|
|
|
+ <url>http://central</url>
|
|
|
+ <releases>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ </releases>
|
|
|
+ <snapshots>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ <updatePolicy>always</updatePolicy>
|
|
|
+ <checksumPolicy>warn</checksumPolicy>
|
|
|
+ </snapshots>
|
|
|
+ </repository>
|
|
|
+ </repositories>
|
|
|
+ <pluginRepositories>
|
|
|
+ <pluginRepository>
|
|
|
+ <id>central</id>
|
|
|
+ <url>http://central</url>
|
|
|
+ <releases>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ </releases>
|
|
|
+ <snapshots>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ <updatePolicy>always</updatePolicy>
|
|
|
+ <checksumPolicy>warn</checksumPolicy>
|
|
|
+ </snapshots>
|
|
|
+ </pluginRepository>
|
|
|
+ </pluginRepositories>
|
|
|
+ </profile>
|
|
|
+ <profile>
|
|
|
+ <id>spring-milestones</id>
|
|
|
+ <repositories>
|
|
|
+ <repository>
|
|
|
+ <id>spring-milestones</id>
|
|
|
+ <url>https://spring</url>
|
|
|
+ <releases>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ </releases>
|
|
|
+ <snapshots>
|
|
|
+ <enabled>false</enabled>
|
|
|
+ </snapshots>
|
|
|
+ </repository>
|
|
|
+ </repositories>
|
|
|
+ <pluginRepositories>
|
|
|
+ <pluginRepository>
|
|
|
+ <id>spring-milestones</id>
|
|
|
+ <url>https://spring</url>
|
|
|
+ <releases>
|
|
|
+ <enabled>true</enabled>
|
|
|
+ </releases>
|
|
|
+ <snapshots>
|
|
|
+ <enabled>false</enabled>
|
|
|
+ </snapshots>
|
|
|
+ </pluginRepository>
|
|
|
+ </pluginRepositories>
|
|
|
+ </profile>
|
|
|
+ </profiles>
|
|
|
+ <activeProfiles>
|
|
|
+ <activeProfile>wisdom</activeProfile>
|
|
|
+ <activeProfile>spring-milestones</activeProfile>
|
|
|
+ </activeProfiles>
|
|
|
+</settings>
|
|
|
+```
|
|
|
+
|
|
|
+##### pom配置
|
|
|
+
|
|
|
+```xml
|
|
|
+ <parent>
|
|
|
+ <groupId>com.wisdom</groupId>
|
|
|
+ <artifactId>wisdom-cloud-parent</artifactId>
|
|
|
+ <version>1.0.0-SNAPSHOT</version>
|
|
|
+ <relativePath/> <!-- lookup parent from repository -->
|
|
|
+ </parent>
|
|
|
+
|
|
|
+
|
|
|
+ <build>
|
|
|
+ <finalName>wisdom-platform</finalName>
|
|
|
+ <plugins>
|
|
|
+ <plugin>
|
|
|
+ <groupId>org.springframework.boot</groupId>
|
|
|
+ <artifactId>spring-boot-maven-plugin</artifactId>
|
|
|
+ </plugin>
|
|
|
+ </plugins>
|
|
|
+ </build>
|
|
|
+```
|
|
|
+
|
|
|
+##### SwaggerConfig
|
|
|
+
|
|
|
+```java
|
|
|
+@Configuration
|
|
|
+@EnableSwagger2
|
|
|
+public class SwaggerConfig {
|
|
|
+ @Bean
|
|
|
+ public Docket createRestApi() {
|
|
|
+ return new Docket(DocumentationType.SWAGGER_2)
|
|
|
+ .apiInfo(apiInfo())
|
|
|
+ .select()
|
|
|
+ .apis(RequestHandlerSelectors.basePackage("com.wisdom.xxx.web"))
|
|
|
+ .paths(PathSelectors.any())
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+
|
|
|
+ private ApiInfo apiInfo() {
|
|
|
+ return new ApiInfoBuilder()
|
|
|
+ .title("xxx系统")
|
|
|
+ .description("xxx系统")
|
|
|
+ .termsOfServiceUrl("http://wuye.huiguanjia.cn")
|
|
|
+ .version("1.0")
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+##### 开发约定
|
|
|
+
|
|
|
+详见:[Java开发约定]:http://doc.huiguanjia.cn/markdown/content/router?filePath=/tmp/docs/develop/规范/Java后端/Java后端开发规范.md&code=null
|
|
|
+
|
|
|
+
|
|
|
+
|