/spring-cloud-icoding

Spring Cloud 容器化部署微服务框架; 四层模型及; Redis使用示例

Primary LanguageJava

生产archetype模板

参考:https://www.jianshu.com/p/724a9fa7b37a

mvn clean archetype:create-from-project -Dinteractive=true
cd target/generated-sources/archetype/
mvn install
mvn archetype:crawl

使用archetype模板

mvn archetype:generate -DarchetypeCatalog=local

开发手册

开发规范以阿里的开发规范:Java开发手册v1.5.0 20华山版.pdf 为基础来补充和优化。 如果内容中重叠的,以本README为主; 动手开发前,请先熟读 Java开发手册》v1.5.0 20华山版.pdf

模块及主要职责

模块依赖关系: api -> facade -> iservice -> sdk; (虽然iservice依赖sdk,但是要尽量避免在iservice里面使用Data和Form类,只有sdk中定义的常量, 才可以iservice使用)

接口DTO - sdk

此模块儿依赖项不多,不继承父类。因此此模块构建出来的jar是可以提供给消费方使用的。 sdk主要有两类Class:

  • Data 名为*Data.java的是返回DTO
  • Form 名为*Form.java的是请求DTO

基础数据服务 - iservice

主要包含模型定义, ORM, 数据库访问, 不带有业务色彩。

iservice 不应该依赖*Data 和 *Form的类; DTO转换应该在Facade模块儿完成。

业务处理逻辑 - facade

主要业务逻辑,包括对第三方服务的调用。

接口Web层 - api

API接口暴露模块儿, 一些拦截器/过滤器在这里实现;同时整个服务的相关启动配置也在这个模块儿的*.config包里实现。 初始化需要加载的逻辑可以放在tech.icoding.sci.api.listener.ContextRefreshedListener中实现。

关于Devops

可以通过命令行参数指定版本号构建; mvn -Drevision=1.1.1 clean package。 具体详情可以参考文档 https://maven.apache.org/maven-ci-friendly.html.