nbsaas-boot企業(yè)級(jí)快速開(kāi)發(fā)框架
nbsaas-boot是一個(gè)企業(yè)級(jí)快速開(kāi)發(fā)框架,具有以下特點(diǎn):
-
自動(dòng)建表:nbsaas-boot提供了自動(dòng)建表功能,根據(jù)用戶定義的數(shù)據(jù)模型自動(dòng)生成數(shù)據(jù)庫(kù)表結(jié)構(gòu),減少手動(dòng)操作,提高開(kāi)發(fā)效率。
-
開(kāi)發(fā)規(guī)范:nbsaas-boot提供一套開(kāi)發(fā)規(guī)范,包括代碼風(fēng)格、命名規(guī)范、注釋規(guī)范等,使團(tuán)隊(duì)開(kāi)發(fā)更加規(guī)范化和高效化。
-
數(shù)據(jù)搜索:nbsaas-boot提供一種新的數(shù)據(jù)搜索,基于搜索引擎技術(shù),快速搜索海量數(shù)據(jù),提供精確和高效的搜索結(jié)果。
-
代碼生成器:nbsaas-boot提供代碼生成器,根據(jù)數(shù)據(jù)模型自動(dòng)生成前端和后端代碼,提高開(kāi)發(fā)效率和代碼質(zhì)量。
-
多租戶支持:nbsaas-boot支持多租戶,為不同客戶提供獨(dú)立的數(shù)據(jù)存儲(chǔ)空間和訪問(wèn)權(quán)限,保證數(shù)據(jù)安全性和隔離性。
-
云原生架構(gòu):nbsaas-boot基于云原生架構(gòu)設(shè)計(jì),支持容器化部署和自動(dòng)化運(yùn)維,具有高可用、高性能、彈性伸縮等優(yōu)點(diǎn)。
-
數(shù)據(jù)安全:nbsaas-boot采用多重?cái)?shù)據(jù)安全保障措施,包括數(shù)據(jù)加密、訪問(wèn)控制、備份與恢復(fù)等,保護(hù)用戶數(shù)據(jù)的安全性和可靠性。
-
用戶友好性:nbsaas-boot提供友好的用戶界面和操作體驗(yàn),快速上手和使用,減少學(xué)習(xí)成本和使用難度。
-
可擴(kuò)展性:nbsaas-boot具有良好的可擴(kuò)展性,支持模塊化開(kāi)發(fā)和插件機(jī)制,方便擴(kuò)展功能和定制化需求。
綜上所述,nbsaas-boot是一個(gè)全面、高效、安全、可擴(kuò)展、易用的SaaS平臺(tái),適用于各種企業(yè)級(jí)應(yīng)用的開(kāi)發(fā)和部署。
技術(shù)選型:
- 服務(wù)端
- Spring、SpringMVC、spring data jpa
- Spring boot,Spring cloud,Spring alibaba
- 安全權(quán)限 Shiro
- 緩存 Ehcache
- 視圖模板 freemarker
- 其它 Jsoup、gson
- 核心采用Request-Response模式,Chain模型。
編碼規(guī)范
1.項(xiàng)目結(jié)構(gòu)規(guī)范
com.{公司域名}.{主工程} com.{公司域名}.{主工程}.{子工程}
2.Api模塊結(jié)構(gòu)規(guī)范
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模塊結(jié)構(gòu)規(guī)范
com.{公司域名}.{主工程}.{子工程} com.{公司域名}.{主工程}.{子工程}.data.entity com.{公司域名}.{主工程}.{子工程}.data.repository com.{公司域名}.{主工程}.{子工程}.rest.conver com.{公司域名}.{主工程}.{子工程}.rest.resource com.{公司域名}.{主工程}.{子工程}.ext.conver com.{公司域名}.{主工程}.{子工程}.ext.resource
4.api接口
/** * 響應(yīng)接口 * * @param <Response> 詳情對(duì)象 * @param <Simple> 列表對(duì)象 * @param <Request> 表單對(duì)象 */ public interface ResponseApi<Response, Simple, Request extends RequestId> { /** * 分頁(yè)查詢 * * @param request * @return 分頁(yè)數(shù)據(jù)信息 */ PageResponse<Simple> search(PageRequest request); /** * 根據(jù)條件查詢集合,不分頁(yè) * * @param request * @return 數(shù)據(jù)集合數(shù)據(jù) */ ListResponse<Simple> list(PageRequest request); /** * 創(chuàng)建 * * @param request * @return 數(shù)據(jù)詳情 */ ResponseObject<Response> create(Request request); /** * 更新 * * @param request * @return 數(shù)據(jù)詳情 */ ResponseObject<Response> update(RequestId request); /** * 刪除 * * @param request * @return 刪除狀態(tài) */ ResponseObject<?> delete(RequestId request); /** * 根據(jù)ID查詢?cè)斍?/span> * * @param request * @return 數(shù)據(jù)詳情 */ ResponseObject<Response> view(RequestId request); }
5.搜索對(duì)象
@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; }
使用訪問(wèn)
已經(jīng)發(fā)布到maven中央倉(cāng)庫(kù)了
<parent> <groupId>com.nbsaas.boot</groupId> <artifactId>boot-nbsaas</artifactId> <version>1.0.7-2023</version> </parent>
