首页 > 其他分享 >LowcodeCore 低代码开发框架——快速搭建数据操作API、数据中台

LowcodeCore 低代码开发框架——快速搭建数据操作API、数据中台

时间:2022-10-06 19:55:27浏览次数:79  
标签:Parameters 数据 Component ComponentParts json API LowcodeCore Data

@

目录

技术交流QQ群:272729176

1. 背景介绍

  • 目前信息化建设已成为各企事业单位必不可少部分。无论是“官方网站、ERP、CRM、OA”等不同类型的信息系统,除了表现形式存在差异之外,本质上后台服务都是围绕数据的“增、删、查、改”等操作。如果存在一款框架能够让我们基本无需编码就可以对外提供数据操作的API,将极大的提升我们搭建信息系统的效率,减少企业投入。
  • 在此背景下,各大厂都竞相推出了自己的低代码开发平台。通过研究发现,大多低代码平台的特征如下:
    1. 基于某一类业务场景实现,如:蓝凌、泛微等OA厂商;这类系统很显然不合适大多数业务场景的功能复用;
    2. 页面设计与数据操作强相关,即可视化操作界面上拖拉拽页面组件时绑定数据源(数据库表),如:阿里的宜搭、腾讯的Weda等,以及现在网络上遍地低代码开发平台;

2. LowcodeCore介绍

请添加图片描述

  • LowcodeCore是一款基于.Net6开发实现的低代码开发框架。该框架可以帮助.Net开发人员快速构建对数据的“增删查改”等操作的API接口,大大提高工作效率。
  • 本文主要以DEMO的形式带领大家快速了解LowcodeCore可以为大家带来哪些功能。

2.1 开发环境

  • VS2022
  • SQL Server 2019

2.2 框架依赖

  • LowcodeCore 1.0.0 项目框架:.Net 6.0
  • 项目依赖:
    Microsoft.EntityFrameworkCore.SqlServer(6.0.4)
    Newtonsoft.Json (13.0.1)
    JavaScriptEngineSwitcher.ChakraCore(3.18.2)
    JavaScriptEngineSwitcher.ChakraCore.Native.win-x64(3.18.2)
    JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64(3.18.2)

3. LowcodeCore开发文档

3.1 快速搭建LowcodeCore项目

3.1.1 步骤一:新建项目

在VS工具“文件-新建-项目”中,检索“ASP.NET Core Web API”,创建一个API项目。
在这里插入图片描述
在这里插入图片描述

3.1.2 步骤二:引用LowcodeCore框架包

通过VS工具“Nuget包管理器-管理解决方案的NuGet程序包”中下载安装即可!
在这里插入图片描述

3.1.3 步骤三:注册LowcodeCore模块

开发项目中的“Program.cs”文件,引用命名空间:using LowcodeCore;并注册Lowcode功能模块;
注:app.UseLowcode() 需要放在“app.MapControllers()”之前。具体原因,在扩展性开发中将详细介绍!

using LowcodeCore;
app.UseLowcode();

在这里插入图片描述

3.1.4 步骤四:创建JSON配置文件

在项目中新建文件夹,命名为:Data。并在文件夹中新增“demo.json”、“route.json”两个JSON配置文件。 详细JSON配置规则,请参考“组件配置”说明
在这里插入图片描述

  • demo.json配置
{
  "ID": "3D24CC45-AE39-43C2-8773-E14C99C903FC",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.HttpContext"
    }
  }
}

  • route.json配置
{
  "Routes": {
    "/Lowcode/Demo": {
      "Name": "LowcodeApi开始开发DEMO",
      "JsonPath": "Data\\demo.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}

3.1.5 步骤五:启动项目,查看效果

项目启动后,在浏览器地址栏中输入:http://【替换为实际的域名:端口】/Lowcode/Demo
如果页面中正常输出以下信息,说明功能正常。
在这里插入图片描述

3.2 数据操作指南

3.2.1 新增数据

在“Data”文件夹中新建“insert.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • insert.json配置
{
  "ID": "DE4C395D-0FC7-42FE-9E36-F4569AB56A4E",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataInsert"
  },
  "DataInsert": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataInsert",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users"
      },
      "Fields": {
        "Id": "$.HttpContext.FromBody.Id",
        "Sex": "$.HttpContext.FromBody.Sex",
        "UserCode": "$.HttpContext.FromBody.UserCode",
        "UserName": "$.HttpContext.FromBody.UserName"
      },
      "Output": "UsersInsertCount"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersInsertCount"
    }
  }
}
  • route.json配置
{
  "Routes": {
    "/User/Insert": {
      "Name": "新增用户",
      "JsonPath": "Data\\insert.json",
      "Method": "POST",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Content-Type: application/json
    Method:POST
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述

  • 数据库效果

  • 在这里插入图片描述

3.2.2 修改数据

在“Data”文件夹中新建“update.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • update.json配置
{
  "ID": "2D91C9C1-8E32-4CD7-9CA2-F943CFBAA0EF",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataUpdate"
  },
  "DataUpdate": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataUpdate",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users"
      },
      "Fields": {
        "Sex": "$.HttpContext.FromBody.Sex",
        "UserCode": "$.HttpContext.FromBody.UserCode",
        "UserName": "$.HttpContext.FromBody.UserName"
      },
      "Filter": "{ \"Id\":\"$.HttpContext.Query.Id\" }",
      "IncludeAll": false,
      "LimitCount": 1,
      "Output": "UsersUpdateCount"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersUpdateCount"
    }
  }
}
  • route.json配置
{
  "Routes": {
    "/User/Update": {
      "Name": "更新用户",
      "JsonPath": "Data\\update.json",
      "Method": "POST",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Content-Type: application/json
    Method:POST
    在这里插入图片描述
  • 运行结果 在这里插入图片描述
  • 数据库效果
    在这里插入图片描述

3.2.3 删除数据

在“Data”文件夹中新建“delete.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • delete.json配置
{
  "ID": "8E31B400-A862-4D91-B574-B6A9096CECF0",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataDelete"
  },
  "DataDelete": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataDelete",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users"
      },
      "Filter": "{ \"Id\":\"$.HttpContext.Query.Id\" }",
      "IncludeAll": false,
      "LimitCount": 1,
      "Output": "UsersDeleteCount"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersDeleteCount"
    }
  }
}
  • route.json配置
{    
 "Routes": {
   "/User/Delete": {
      "Name": "删除用户",
      "JsonPath": "Data\\delete.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
  • 在这里插入图片描述

3.2.4 查询所有数据

在“Data”文件夹中新建“getallusers.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • getallusers.json配置
{
  "ID": "C6765C2E-E1A2-4C4C-9ED7-44ECFA0D839E",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataSelect"
  },
  "DataSelect": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataSelect",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users",
        "Type": "Table",
        "SQL": "" /*Type:Custom时有效*/
      },
      "Fields": [ "UserCode", "UserName" ],
      "OrderBy": { "UserCode": "ASC" },
      "Filter": "{ \"Sex\":0 }",
      "Output": "Users"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.Users"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/GetAll": {
      "Name": "查询所有用户",
      "JsonPath": "Data\\getallusers.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述

3.2.5 数据记录总数统计

在“Data”文件夹中新建“usercount.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • usercount.json配置
{
  "ID": "C65C1B9D-7776-4B33-A89A-3640FE456B0A",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataCount"
  },
  "DataCount": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataCount",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users",
        "Type": "Table",
        "SQL": "" /*Type:Custom时有效*/
      },
      "Filter": "{ \"Sex\":\"$.HttpContext.Query.Sex\" }",
      "Output": "UsersDataCount"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersDataCount"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/Count": {
      "Name": "统计用户数",
      "JsonPath": "Data\\usercount.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述

  • 数据库效果
    在这里插入图片描述

3.2.6 判断记录是否存在

在“Data”文件夹中新建“userany.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • usercount.json配置
{
  "ID": "1ECA7F66-AAB7-4DEB-8DB6-A6061C042D4E",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataAny"
  },
  "DataAny": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataAny",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users",
        "Type": "Table",
        "SQL": "" /*Type:Custom时有效*/
      },
      "Filter": "{ \"Sex\":\"$.HttpContext.Query.Sex\" }",
      "Output": "UsersAny"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersAny"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/Any": {
      "Name": "是否存在用户",
      "JsonPath": "Data\\userany.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述

3.2.7 获取首条数据记录

在“Data”文件夹中新建“userfirst.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • userfirst.json配置
{
  "ID": "800B3330-AA78-4CBA-BBB1-ED994E23B99A",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "DataFirst"
  },
  "DataFirst": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.DataFirst",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users",
        "Type": "Table",
        "SQL": "" /*Type:Custom时有效*/
      },
      "Fields": [ "Id", "UserCode", "UserName", "Sex" ],
      "Filter": "{ \"Id\":\"$.HttpContext.Query.Id\" }",
      "Output": "UsersFirst"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.UsersFirst"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/First": {
      "Name": "是否存在用户",
      "JsonPath": "Data\\userfirst.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述

3.2.8 分页查询

在“Data”文件夹中新建“turnpage.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • turnpage.json配置
{
  "ID": "11EDB839-A1CC-4ECE-B91B-38FC8C8E9B4A",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "TurnPageQuery"
  },
  "TurnPageQuery": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.TurnPageQuery",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "Users",
        "Type": "",
        "SQL": "" /*Type:Custom时有效*/
      },
      "Fields": [ "UserCode", "UserName" ],
      "GroupBy": [ "UserCode", "UserName" ],
      "OrderBy": { "UserCode": "ASC" },
      "Filter": "{ \"Sex\":0 }",
      "PageSize": "$.HttpContext.Query.PageSize",
      "PageIndex": "$.HttpContext.Query.PageIndex",
      "Output": "Users"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.Users"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/TurnPage": {
      "Name": "分页查询",
      "JsonPath": "Data\\turnpage.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述

3.2.9 存储过程执行

在“Data”文件夹中新建“procedureExecute.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • procedureExecute.json配置
{
  "ID": "3EC8B8F1-A418-4382-9F81-D51B2B699574",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "ProcedureExecute"
  },
  "ProcedureExecute": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.ProcedureExecute",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "usp_UpdateUser",
        "Type": "Procedure"
      },
      "Filter": "{ \"Id\":\"$.HttpContext.Query.Id\",\"UserName\":\"$.HttpContext.Form.UserName\"}",
      "Output": "usp_UpdateUser"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.usp_UpdateUser"
    }
  }
}
  • route.json配置
{    
 "Routes": {
   "/User/TurnPage": {
      "Name": "分页查询",
      "JsonPath": "Data\\turnpage.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:POST
    Content-Type: application/x-www-form-urlencoded
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述
  • 存储过程
create Procedure  [dbo].[usp_UpdateUser]  @Id varchar(36),@UserName varchar(36)
as
Begin
 Update [Users] set UserName=@UserName where Id=@Id
End 
GO

3.2.10 存储过程查询

在“Data”文件夹中新建“procedureQuery.json”文件;并添加路由配置;
详细JSON配置规则,请参考“组件配置”说明

  • procedureQuery.json配置
{
  "ID": "3EC8B8F1-A418-4382-9F81-D51B2B699574",
  "Start": {
    "Component": "LowcodeCore.ComponentParts.HttpContextStart",
    "Parameters": {
      "Output": "HttpContext"
    },
    "Next": "ProcedureQuery"
  },
  "ProcedureQuery": {
    "Component": "LowcodeCore.ComponentParts.DataOperate.ProcedureQuery",
    "Parameters": {
      "Entity": {
        "ConnectionString": "Data Source=.\\SQL2019; Initial Catalog=Lowcode; Persist Security Info=True; User ID=sa; Password=123456;",
        "Name": "usp_GetUser",
        "Type": "Procedure"
      },
      "Filter": "{ \"Id\":\"$.HttpContext.Query.Id\" }",
      "Output": "usp_GetUser"
    },
    "Next": "End"
  },
  "End": {
    "Component": "LowcodeCore.ComponentParts.HttpContextEnd",
    "Parameters": {
      "Response": "$.usp_GetUser"
    }
  }
}

  • route.json配置
{    
 "Routes": {
   "/User/ProcedureQuery": {
      "Name": "存储过程查询",
      "JsonPath": "Data\\procedureQuery.json",
      "Method": "GET",
      "Accessibility": "Public",
      "Roles": []
    }
  }
}
  • 提交数据过程(DEMO使用Fiddler工具操作)
    Method:GET
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
  • 数据库效果
    在这里插入图片描述
  • 存储过程
create Procedure  [dbo].[usp_GetUser]  @Id varchar(36)
as
Begin
 select * from [Users] where Id=@Id
End
GO

4. LowcodeCore.Api.Demo下载

https://files.cnblogs.com/files/blogs/748071/LowcodeCode.Api.Demo.zip?t=1665054506

5. LowcodeCore组件说明

https://www.cnblogs.com/hoager/articles/16758232.html

技术交流QQ群:272729176

标签:Parameters,数据,Component,ComponentParts,json,API,LowcodeCore,Data
From: https://www.cnblogs.com/hoager/p/16758303.html

相关文章

  • LowcodeCore 低代码开发框架——组件说明
    @目录技术交流QQ群:2727291761.背景介绍2.框架组件2.1组件列表2.2组件配置规则说明2.3组件管道配置说明2.4获取HttpContext参数2.4.1HttpContext.Url参数2.4.2HttpC......
  • LowcodeCore低代码开发框架
    最近上线一款低代码开发框架,基于C#.Net6+SQLServer实现;用于快速开始开发API服务;1、LowcodeCore低代码开发框架——快速搭建数据操作API、数据中台https://www.cnblo......
  • 续《基于C# 开发的SOL SERVER 操作数据库类(SQLHelp》 ——第二弹
    续上一节,本节给出SQLHelp的具体实现方法——《YSFSQLHelp》,个人根据自己需要新建适合的类,本节根据参考网上资料,根据自己的需要编写的SQL帮助类。下面直接给出具体实现:......
  • 1.8 数据结构_集合与元组
    #数据结构–集合   #新增元素:dict_size.add(obj)   #删除元素:dict_size.remove(obj)   #集合的遍历   #集合转换成列表提取数据#数据结构–......
  • Mysql 系列 | 误删数据
    误删数据是数据库操作过程中不可避免会遇到的问题。误删分为几种,误删行、误删库/表、误删整个实例。遇到问题就要分析原因,并对症下药解决问题。误删行使用delete语......
  • 「前端料包」可能是最透彻的JavaScript数据类型详解
    前言接触写博客有一段时间了,都是边学边学着写,但总感觉写的凌乱,想起啥写啥。这几天在刷红宝书,收获还是蛮多的,决定结合自己的学习,写一个系列,我叫它「前端料包」,旨在巩固前端......
  • 【微信小程序】数据绑定
    ......
  • hive数据导出到linux本地
    方法1(hive下执行):insertoverwritelocaldirectory'Linux本地目录'rowformatdelimitedfieldsterminatedby '\t' select*from表名where......;eg:inserto......
  • 每周总结——week02 (基本数据类型及其内置方法篇)
    每周总结——week02基本数据类型及其内置方法篇1、基本数据类型之整型(int)概述:整型(int): 整型就是指各种整数,整型属于不可变数据类型,语法结构: 变量名=整数数值eg: a......
  • 【学习笔记】数据库连接池
    数据库连接池数据库的连接,执行到释放,过程十分浪费系统资源所以出现了一种技术叫做:池化技术池化技术:准备一些预先的资源,过来就连接预先准备好的资源最小连接数:根据业务......