一、提供简单、易用的接口
BaseService是一个完全封装了底层应用框架,为上层开发提供一系列简单、易用的接口,方便开发人员快速进行开发,以满足项目开发效率和质量的要求。 以下是一个示例:
/**
* 根据随机参数来查询一个商品信息
* @param random 随机参数
* @return 商品信息
*/
public Product getProductByRandom(String random) {
Map<string, object> params = new HashMap<>();
params.put("random", random);
return baseRepository.selectOne(Product.class, params);
}
通过这个简单的接口调用,可以轻松地在数据库中查询商品信息。从这个示例可以清晰地看到,BaseService所提供的接口简洁、易用,很容易通过各种简短的参数就能完成各项操作。
二、提供可扩展的框架
BaseService提供的框架基本上可以适应所有的应用场景,并且具有可扩展性,在各种新的业务需求情况下都能够进行灵活的扩展。 以下是一个示例:
/**
* 获取热门排行商品列表
*
* @param size 列表长度
* @param category 商品分类
* @return 商品列表
*/
public List<product> getHotProductList(int size, Category category) {
List<product> list = new ArrayList<>();
String sql = "Select * from t_product where category_id = ? order by sales_volume desc,id desc limit 0,?";
List<map<string, object>> result = baseRepository.queryForList(sql, category.getId(), size);
for (Map<string, object> map : result) {
list.add(handler(map));
}
return list;
}
通过这个接口,可以轻松地获取到热门商品列表。随着业务发展,可能需要新增其他商品排行规则,则只需要在原代码基础上进行简单的修改即可满足新的业务需求。
三、提供丰富的扩展支持
BaseService提供了大量的扩展支持,其中主要包括:
- 缓存 BaseService默认支持Redis和Memcached两个主流缓存方案,可以方便的将数据放入缓存中,从而提高系统的运行效率和性能。
- 数据库持久化 BaseService支持所有主流的关系型数据库,同时也支持一些非关系型数据库的常用操作和特性,如MongoDB等。
- Web MVC支持 BaseService支持整合常用Web MVC框架,例如Spring MVC等,可以根据业务需要方便地进行选择。 以下是一个示例:
/**
* 获取热门排行商品列表
* @param size 列表长度
* @param category 商品分类
* @param request HTTP请求
* @return 商品列表
*/
public List<product> getHotProductList(int size, Category category, HttpServletRequest request) {
List<product> list = new ArrayList<>();
String sql = "Select * from t_product where category_id = ? order by sales_volume desc,id desc limit 0,?";
List<map<string, object>> result = baseRepository.queryForList(sql, category.getId(), size);
for (Map<string, object> map : result) {
list.add(handler(map));
}
// 添加缓存支持
if (useCache) {
String key = "getHotProductList_" + category.getId();
Object cache = cacheService.getCache(key);
if (cache != null) {
return (List<product>) cache;
} else {
cacheService.putCache(key, list);
}
}
// 添加Web MVC支持
request.setAttribute("hotProductList", list);
return list;
}
通过以上示例,可以清楚地看到,BaseService提供了丰富的扩展支持,可以使业务人员快速构建出符合自身需求的应用系统。
四、提供良好的兼容性和易维护性
BaseService提供了良好的兼容性和易维护性,可以在各种语言和操作系统上快速部署和运行,同时对系统进行维护也变得非常简单。 以下是一个示例:
/**
* 获取热门排行商品列表
*
* @param size 列表长度
* @param category 商品分类
* @return 商品列表
*/
public List<product> getHotProductList(int size, Category category) {
List<product> list = new ArrayList<>();
String sql = "Select * from t_product where category_id = ? order by sales_volume desc,id desc limit 0,?";
List<map<string, object>> result = baseRepository.queryForList(sql, category.getId(), size);
for (Map<string, object> map : result) {
list.add(handler(map));
}
return list;
}
通过以上示例,可以看到,BaseService所提供的接口代码清新简洁、易于理解,符合各种开发人员的编码习惯,在进行维护和升级时非常方便。