您在浏览的是beecloud快速开发框架说明文档。

beecloud介绍

在开始学习了解BEECLOUD前,先来了解一下传统的开发模式与BEECLOUD的开发模式有什么不一样。

传统开发模式:

需要开发人员从接口到业务,再到数据持久化全流程开发,对开发人员技术要求相对比较高,同时引发的问题也比较多。比如 Java 用 SpringBoot,Mybatis 来开发一般来说就像下面这个流程:


BeeCloud开发模式:

普通业务,只需要开发人员会建数据,会建数据库表,建完数据库后框架自动提供对就表的数据接口,BEECLOUD开发就像下面这个流程(你没看错,就这么简单):


当然会有一些特殊情况需要处理,如开发人员需要在业务处理的过程中对请求参数进行校验,对业务处理结果进行再处理或在结果中增加其他数据集等,那就需要有java基础的开发工程师写少量简单的java代码了,如下流程(你没看错,还是这么简单):


BeeCloud多服务集群

多服务集群模式,主要应用于业务系统复杂多样化时,将复杂的业务系统模块化,简单化,多样化,最好组合为一个整体,统一提供服务,传统的开发模式中需要多个角色共同参与设计开发,同时对来业务相对复杂且内容比较多时,需要多个开发人员共同参与,人数由几人到几十人组成,同时研发时间需要几个月到一年等,大大提高了成本,使用Beecloud多服务集群模式能解决您的这个烦恼问题,如需要详细了解,请联系我(微信号:bbbcbbbc)。


beecloud 是什么

beecloud是一套用于构建多数据源数据库管理后台快速开发框架,自动生成API接口,同时提供可视化API测试工具。能为中小型产品或项目提高开发效率的同时,降低人工成本50%左右,缩短开发周期50%左右。基于springboot,实现数据库表自动映射为restful接口,常用的增加、删除、修改、查询与多条件查询功能自动实现,大大减少开发工作量,同时,beecloud框架自动实现多数据源中的统一事务,即使是应届毕业生或初学者也能快速开发大型系统,不仅易于上手,还便于与第三方库或既有项目整合。

如果你想在深入学习 beecloud之前对它有更多了解,请通过邮件联系我:529822722@qq.com

如果你已经是有springboot方面的开发经验,对于了解beecloud就更容易了,同时欢迎您加入beecloud开发团队。

可视化API测试页面

服务启动后系统自动提供api测试页面,测试地址为:http://host:port/{content_path}/$api,示例如下图:


应用实例

假设你已了解关于springboot、redis 和 elasticsearch的相关知识。对学习beecloud框架的使用经验会有帮助,但这不是必需的。

引入maven包:

<dependency>
     <groupId>cn.bee-cloud</groupId>
     <artifactId>beecloud-service-springboot</artifactId>
     <version>laster</version>
</dependency>

尝试基于beecloud创建一个应用项目,如果你使用过springboot与maven项目,那么你只需要几分钟的时候就可以创建一个开发项目,同时提供对外数据服务接口。

package bee.cloud.service.web;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
import bee.cloud.service.BeeApplication;

@SpringBootApplication
@Component
public class BeewebApplication
{
    public static void main(String[] args)
    {
//        System.setProperty("nacos.standalone", "true");
        BeeApplication.run(args);
        System.out.println("System inited.");
    }
}

应用配置springboot(application.properties或bootstrap.yml):

server.servlet.context-path=/webapi
# 服务端口
server.port=8233
# session最大超时时间(分钟),默认为30
server.session-timeout=60
# tomcat最大线程数,默认为200
server.tomcat.max-threads=200
server.tomcat.maxThreads=200
server.tomcat.accept-count=200
server.tomcat.acceptCount=200
# tomcat的URI编码
server.tomcat.uri-encoding=UTF-8
# Nacos 注册中心
#spring.application.name = nacos-discovery-server-local
#spring.cloud.nacos.discovery.server-addr = ***.***.***.***:8848
#spring.cloud.nacos.discovery.ip=192.168.31.16
#spring.cloud.nacos.discovery.port=8081
 
##日志配置
logging.path=/logs/
logging.file=server1.%d.log
logging.level.root=INFO
logging.level.com.jackie.springbootdemo.config=WARN
#logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n 
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level - %msg%n 
#logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level - %msg%n

bootstrap.yml


server:
  # session最大超时时间(分钟),默认为30
  session-timeout: 60
  #servlet:
  #  context-path: /page
  tomcat:
    uri-encoding: utf-8
    # tomcat最大线程数,默认为200
    max-threads: 200
    maxThreads: 200
    accept-count: 200
    acceptCount: 200
  port: 8282
spring:
  application:
    name: page
    #name: nacos-discovery-server-local
  profiles:
    active: dev
  #多个javaBean以最后一个为准
  main:
    allow-bean-definition-overriding: true
logging:
  level:
    root: info
#项目配置
project:
  init:
    db:
      name: dbconfig-manager.yml
    cache-item:
      enable: true
      urls:
        - page/dict
        - page/dict/item
        #- page/area
    dict:
      enable: true
  #初始化api配置
  api:
    #是否开启api初始化
    enable: true
    #初始化api配置文件名称
    file-name: manager_api_config.yml

配置数据源(dbconfig.yml)

支持多数据源,分库等配置:


spring:
  datasources:
    initialSize: 1
    minIdle: 1
    maxActive: 5
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    connectProperties: remarks=true;useInformationSchema=true
    options: useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&userSSL=false&useOldAliasMetadataBehavior=true
    host: ip地址:3306
    #host: 127.0.0.1:3306
    db1:
      url: jdbc:mysql://{host}/cookie?{options}
      username: root
      password: '*8849AE30E404D869783DDD09E00AD2B9*'
      #需要初始化的表,%表示匹配t_开头的所有表
      init_table: t_%
    db2:
      url: jdbc:mysql://{host}/cookie?{options}
      username: root
      password: '*8849AE30E404D869783DDD09E00AD2B9*'
      #需要初始化的表,%表示匹配t_开头的所有表
      init_table: t_%

redis缓存配置(cache.properties)

redis缓存配置,支持集群配置,缓存分组等操作:


#======系统保留缓存======= #值为“*十六进制内容*”是表示加密串(后台加密工具生成),后台会自动解密 host=*B81595E2047DFDA736373DE5AB5B4AA8C5FA9390018D2BAE* #密码 password=*37FE174349ADEB13* #主机,IP+端口 #host=192.168.1.25:6390 #redis中的数据结构为Hash列表 #key:{group}:分组名称 #field:{host,timeout,maxActive,maxIdle,maxWait} #分组路由 #group=cache_route #======分组====== [kaoqin] #主机,IP+端口,如果多个主机请用逗号隔开; #如果存在多个主机时,第一个主机为主服务器负责写数据,其他主机都为从服务器,只负责读操作 #host=127.0.0.1:6379,127.0.0.1:6380 host=192.168.1.143:6379,192.168.1.143:6381 #连接超时限制,单位:毫秒,默认为5秒 timeout=5000 #最大活动连接数,默认为3000 maxActive=3000 #最大懒连接数,默认为最大活动连接数 maxIdle=3000 #最长等待时间,单位:毫秒,默认为5秒 maxWait=5000 [login] #host=127.0.0.1:6379 host=*B81595E2047DFDA736373DE5AB5B4AA8C5FA9390018D2BAE* #密码 password=*37FE174349ADEB13* #连接超时限制,单位:毫秒,默认为5秒 timeout=5000 #最大活动连接数,默认为3000 maxActive=10 #最大懒连接数,默认为最大活动连接数 maxIdle=10 #最长等待时间,单位:毫秒,默认为5秒 maxWait=5000 #资源回收时间,单位:毫秒,默认为0毫秒,为0时表示即时回收 recoveryTime=5000 #数据库索引(0-15) index=1 #数据字典缓存 [dictionary] #host=127.0.0.1:6379 host=*B81595E2047DFDA736373DE5AB5B4AA8C5FA9390018D2BAE* #密码 password=*37FE174349ADEB13* #连接超时限制,单位:毫秒,默认为5秒 timeout=5000 #最大活动连接数,默认为3000 maxActive=10 #最大懒连接数,默认为最大活动连接数 maxIdle=10 #最长等待时间,单位:毫秒,默认为5秒 maxWait=5000 #数据库索引(0-15) index=3 #系统配置 [system] #host=127.0.0.1:6379 host=*B81595E2047DFDA736373DE5AB5B4AA8C5FA9390018D2BAE* #密码 password=*37FE174349ADEB13* #连接超时限制,单位:毫秒,默认为5秒 timeout=5000 #最大活动连接数,默认为3000 maxActive=100 #最大懒连接数,默认为最大活动连接数 maxIdle=100 #最长等待时间,单位:毫秒,默认为5秒 maxWait=5000 #数据库索引(0-15) index=4 #业务缓存分组 [business] #与system分组同库,只有index不一致 link=system #数据库索引(0-15) index=5

bee公共配置(bee.yml)

公共配置,全局配置,通过BConfig类来读取值:


es:   nipplat:     # 阿里云     - endpoints: ip:9200       username: elastic       password: elastic#123     # 虚拟机     - endpoints: ip:9200       username: elastic       password: elastic#123 #缓存相关通用配置 cache:   #空闲时间,单位:秒,默认为10秒   idle_time: 200 #系统配置 system:   #系统运行状态,dev:开发状态,release:发布状态,默认为release   active: dev #输出相关配置 out:   #日期类型输出格式,默认为时间戳,(yyyy-MM-dd HH:mm:ss.SSS)   #dateformat: yyyy-MM-dd HH:mm:ss   #加密主键,默认为true,加密输出   encrypt_pk: true   #不需要加密输出的PK名称,encrypt_pk为true时生效   no_encrypt_pk:     - '*area_id'     - province_id   #是否输出这空属性   null_property: false

#文件上传配置,根据文件主传实现方式确定,可以是minio、fastNFS等 upload:   #文件存放根目录   #root: /opt/web/cookie/file   web-root: E:/workspace/webroot   #大小限制   max-size: 2M   #上传图片配置   img:     #大小限制     max-size: 2M     #预览图     preview:       #小图大小       small: 200*300       #中图大小       middle: 600*800       #大图大小       #big: 1024*1600

文件上传配置(bee.yml)

合并到公共配置中:

#文件上传配置,根据文件主传实现方式确定,可以是minio、fastNFS等
upload:
  #文件存放根目录
  #root: /opt/web/cookie/file
  web-root: E:/workspace/webroot
  #大小限制
  max-size: 2M
  #上传图片配置
  img:
    #大小限制
    max-size: 2M
    #预览图
    preview:
      #小图大小
      small: 200*300
      #中图大小
      middle: 600*800
      #大图大小
      #big: 1024*1600

ES配置(bee.yml)

合并到公共配置中,可独立配置:


es:
  nipplat:
    # 阿里云
    - endpoints: ip:9200
      username: elastic
      password: elastic#123
    # 虚拟机
    - endpoints: ip:9200
      username: elastic
      password: elastic#123

API配置(api.yml)

对输出的API接口属性进行配置,将数据库表中的表名、字段名等增加注解,增加前端的可读性,同时可配置数据的脱敏规则,关联数据等。


#数据源名称,与dbconfig中对应 db1:   #数据字典分组表   s_dict:     #保存到login缓存分组中     cache: login   #数据字典详情表   s_dict_item:     #保存到login缓存分组中     cache: login   #数据库用户表名   t_user:     #显示标题     title: 用户管理     #表说明     describe: 用户管理     #缓存配置,如果配置缓存或搜索引擎后,数据库表的操作事务失效,因为写完表后马上就要同步到缓存或搜索引擎,与search互斥     #cache: 缓存分组名称     #ES搜索引擎配置,当cache正在时,search无效     #search: ES对应的配置名称     search: es:0     #逻辑删除标志     #logic_delete: 字段名=代表删除的值     #数据库表字段配置     fields:       sex: #字段名称         #默认值         #defval: uuid         #显示标题         title: 性别         #对应数据字典代码,如:$gender表示为性别字典,$为数据字典专用符号         dict: $gender         #字段说明         describe: 性别         #脱敏方式,只对列表数据生效         #1、n*m:表示保留前n与后m位,中间用*号代替,如果长度不足n+1的,后边的m忽略不计,如:4*3表示为保留前4位与后3位,中间部分用*号替换         #2、*n:表示为后边的n位用*号代替,如:-6*表示为后边6位用*号代替         #3、n*:表示为前边的n位用*号代替,如:6*-表示为前边6位用*号代替         #4、a:b:表示为把字母a替换为字母b,ab字母随便指定,a可以是一个正则表达式,如:@|\\$\\&:#,表示将字符串是的字符(@、$、&)替换为“#”         #tuomin: 4*3         #relation: 关联表,表对应的URI名[->别名]没有别名的话默认为表对应的UUI名       type:         title: 类型         #字段对应的数据字典         dict: $stuffType       status:         title: 状态         #字段对应的数据字典         dict: $status       userlevel:         title: 等级         dict: $roleLevel   c_user_info:     fields:       user_id:         title: 用户ID         relation:           - db2:dg_msg_queue->queue       name:         tuomin: 1*1       idcard_no:         tuomin: 4*3       phone:         tuomin: 3*4       address:         tuomin: 6*       birth_date:         tuomin: -:/   t_area:     fields:       area_level:         dict: $rangeLevel   #公告管理   t_notice:     title: 公告管理     fields:       notice_title:         title: 标题       notice_type:         title: 所属系统         relation: system       notice_content:         title: 内容       organ_id:         title: 机构ID         defval: '@organid'       organ_name:         title: 机构名称         defval: '@organ_name'       issuer_name:         title: 发布人         defval: '@realname'       issuer_id:         title: 发布人ID         defval: '@user_id'       issue_time:         title: 发布时间         defval: time:yyyy-MM-dd HH:mm:ss       last_update_time:         title: 更新时间         defval: now:yyyy-MM-dd HH:mm:ss       is_must_read:         title: 是否强提醒         describe: 1-是,0-否       area_id:         title: 区域ID         defval: '@area_id'   user_test:     logic_delete: is_del=1     cache: business db2:   dg_msg_queue:     fields:       name:         tuomin: 1*1       idcard_no:         tuomin: 4*3

==========================

beecloud使用说明
 
 
 
 
 

联系人:度仙(QQ:529822722,微信号:bbbcbbbc)

备案号:粤ICP备19072050号


了解详情请扫码加微信