应用代码介绍

概述

开发者通过电商云平台创建应用并经过后台管理员审核通过后,会按电商云标准工程模版生成一个项目(对应一个 git 仓库),通过 git clone 下下来的就是应用框架源码,开发者可以在里面写自己的业务逻辑,实现业务扩展点、订阅消息扩展点等等。

项目结构

image-20181129162832611

上图是创建应用后通过 git clone 下来的工程结构,应用名称为 test-app,默认生成有五个 module。

项目根包名:com.youzan.cloud.test.app。

接下来按图例说明一下:

test-app-api:接口声明 XXService.java、DTO 封装等,一般在这个模块里不会去依赖其他模块和第三方依赖;

test-app-biz:服务实现模块,除了在该模块里写 XXServiceImpl.java 外,最主要的还会在这里编写业务扩展点实现类和消息扩展点实现类;

test-app-dal:如果你的应用中用到了数据库,需要在这个模块里去写 dao、mapper 等,应用框架默认支持 druid 和 mybatis;

test-app-deploy:这个模块是用来打包的,执行 mvn package 后的最终 jar 包生成模块,所以生成后不需要去改动里面的内容,改动后可能会导致发布失败;

test-app-web:项目的一些 web 相关的类放在这个模块里,如 XXController.java,以及一些静态资源(js、css、页面等等)。

项目工程说明

1. 应用开发框架

  • 应用开发基于 spring boot 2.1.0.RELEASE、spring 5.1.2.RELEASE。

  • 应用根 pom 的 parent 为

<groupId>com.youzan</groupId>
<artifactId>cloud-parent</artifactId>

这个不能修改,否则无法发布部署。

2. 依赖关系

test-app-biz 依赖 test-app-api;

test-app-biz 依赖 test-app-dal;

test-app-web 依赖 test-app-biz;

test-app-deploy 依赖 test-app-web;

3. 项目包名

如前面的样例项目根包名是 com.youzan.cloud.test.app,各个模块会加上模块名,如 test-app-biz 的包名为 com.youzan.cloud.test.app.biz;

包名必须得遵循这样的规则,否则写的 bean 可能无法被加载到。

前端扩展点开发目录

image-20181129163517002

前端扩展点开发目录在 test-app-web/client 下,创建应用后默认会有个下单页(buy)的样例,在样例里有对组件(components)和方法(methods)进行扩展,如果需要添加其他页面的扩展需要在 buy 同级目录下新建目录,目录名为页面名称。