nbsaas-admin企业级快速开发框架
nbsaas-admin是一个企业级快速开发框架,具有以下特点:
-
自动建表:nbsaas-admin提供了自动建表功能,根据用户定义的数据模型自动生成数据库表结构,减少手动操作,提高开发效率。
-
开发规范:nbsaas-admin提供一套开发规范,包括代码风格、命名规范、注释规范等,使团队开发更加规范化和高效化。
-
数据搜索:nbsaas-admin提供一种新的数据搜索,基于搜索引擎技术,快速搜索海量数据,提供精确和高效的搜索结果。
-
代码生成器:nbsaas-admin提供代码生成器,根据数据模型自动生成前端和后端代码,提高开发效率和代码质量。
-
多租户支持:nbsaas-admin支持多租户,为不同客户提供独立的数据存储空间和访问权限,保证数据安全性和隔离性。
-
云原生架构:nbsaas-admin基于云原生架构设计,支持容器化部署和自动化运维,具有高可用、高性能、弹性伸缩等优点。
-
数据安全:nbsaas-admin采用多重数据安全保障措施,包括数据加密、访问控制、备份与恢复等,保护用户数据的安全性和可靠性。
-
用户友好性:nbsaas-admin提供友好的用户界面和操作体验,快速上手和使用,减少学习成本和使用难度。
-
可扩展性:nbsaas-admin具有良好的可扩展性,支持模块化开发和插件机制,方便扩展功能和定制化需求。
综上所述,nbsaas-admin是一个全面、高效、安全、可扩展、易用的SaaS平台,适用于各种企业级应用的开发和部署。
技术选型:
- 服务端
- Spring、SpringMVC、spring data jpa
- Spring boot,Spring cloud,Spring alibaba
- 安全权限 Shiro
- 缓存 Ehcache
- 视图模板 freemarker
- 其它 Jsoup、gson
- 核心采用Request-Response模式,Chain模型。
编码规范
1.项目结构规范
{主工程} {主工程}.adapters {主工程}.admins {主工程}.api {主工程}.apps {主工程}.code-generator {主工程}.commons {主工程}.gates {主工程}.gateway {主工程}.models {主工程}.resources
2.Api模块结构规范
com.{公司域名}.{主工程}.{子工程} com.{公司域名}.{主工程}.{子工程}.api.apis com.{公司域名}.{主工程}.{子工程}.api.domain.enums com.{公司域名}.{主工程}.{子工程}.api.domain.request com.{公司域名}.{主工程}.{子工程}.api.domain.response com.{公司域名}.{主工程}.{子工程}.api.domain.simple com.{公司域名}.{主工程}.{子工程}.ext.apis com.{公司域名}.{主工程}.{子工程}.ext.domain.enums com.{公司域名}.{主工程}.{子工程}.ext.domain.request com.{公司域名}.{主工程}.{子工程}.ext.domain.response com.{公司域名}.{主工程}.{子工程}.ext.domain.simple
3.Resource模块结构规范
com.{公司域名}.{主工程}.{子工程} com.{公司域名}.{主工程}.{子工程}.data.entity com.{公司域名}.{主工程}.{子工程}.data.repository com.{公司域名}.{主工程}.{子工程}.rest.conver com.{公司域名}.{主工程}.{子工程}.rest.resource com.{公司域名}.{主工程}.{子工程}.ext.conver com.{公司域名}.{主工程}.{子工程}.ext.resource
4.api接口
/** * 响应接口 * * @param <Response> 详情对象 * @param <Simple> 列表对象 * @param <Request> 表单对象 */ public interface ResponseApi<Response, Simple, Request extends RequestId> { /** * 分页查询 * * @param request * @return 分页数据信息 */ PageResponse<Simple> search(PageRequest request); /** * 根据条件查询集合,不分页 * * @param request * @return 数据集合数据 */ ListResponse<Simple> list(PageRequest request); /** * 创建 * * @param request * @return 数据详情 */ ResponseObject<Response> create(Request request); /** * 更新 * * @param request * @return 数据详情 */ ResponseObject<Response> update(RequestId request); /** * 删除 * * @param request * @return 删除状态 */ ResponseObject<?> delete(RequestId request); /** * 根据ID查询详情 * * @param request * @return 数据详情 */ ResponseObject<Response> view(RequestId request); }
5.搜索对象
@Getter @Setter @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class UserInfoSearchRequest extends PageRequest implements Serializable { @Search(name = "phone",operator = Operator.like) private String phone; @Search(name = "catalog",operator = Operator.eq) private Integer catalog; @Search(name = "note",operator = Operator.like) private String note; @Search(name = "loginSize",operator = Operator.eq) private Integer loginSize; @Search(name = "name",operator = Operator.like) private String name; }
评论