【需求】
1. 完全前后台,多终端分离式开发,互补影响进度。开发中在本地自建JSON文本测试即可,无需依赖服务端。完全解耦。
2. 本着 客户需求易变,前端应快速搭建不同形式,终端。
3. Java服务端一个服务多终端享用,兼容性强。
4. 大量使用 泛型,反射,重载,重写。
泛型:为了规范程序员使用方式,但不脱离根本。
反射:减少大量重复性工作。
重载、重写:对原有通用型CRUD做进一步扩展,强化验证等。
【架构】
服务端:resteasy + spring + spring security + spring aop + hibernate
windows:C# Winform
手 机:Html5 + jquery mobile + mobiscroll
其 它:Html (略)
传输格式 :"application/json;charset=UTF-8"
C# 端架构跳转:C#Winform客户端
Html5 + jquery mobile + mobiscroll跳转:
spring security:点击打开链接
【测试工具】
FireFox RESTClient
【JAVA服务端架构】
CURD复用框架,主要使用Java泛型、反射、方法重载。
主要解决问题:
- 减少重复代码工作量。
- 符合接口隔离原则,每一个接口对应一种角色。
- 规范接口类型。
- 类型自动转换,不需要而外强制类型转换。
重点讲述:Crudable-源码说明,模糊查询方法实现。
因模糊查询方法,包含潜在的规则,设计后台、前台页面使用者的关系。
案例【BaseService 使用】
1. 自定义Restful接口继承BaseService<T extends BaseEntity>(即定义基础CRUD接口)
2. 泛型BaseService<T>为必填项,必须为BaseEntity子类(因后台自动转换类型,避免强制类型转换)
3. 使用Restful注解,配置@Path、@Producess,保证访问路径唯一性。
4. Restful实现继承BaseServiceImpl<T extends BaseEntity>,即实现基础CRUD方法
5. 泛型BaseServiceImpl<T>为必填项,必须为BaseEntity子类(因后台自动转换类型,ORM映射等)
package com.xiazhi.b