0.前言
  上一篇博客已经介绍了,阶段性小结。目前第一版的物联网平台已经趋于完成。框架基本不变了,剩下就是调整一些UI,还有配合硬件和市场那边,看看怎么推广这个平台。能不能挣点外快。第一版系统虽然简陋,但是对于整个物联网业务的了解还是有很大的帮助的。就像一个道理,吃10个包子,吃到最后一个饱了,但不能说前面9个没有用。不过硬件、市场、项目等等,这些是我不能控制的。但是平台的迭代和第二版规划不能停。第二版物联网平台,将采用现有的企业开发框架,并且是前后端分离,开始用上前端的Vue框架。
  前段时间,经人推荐一个企业级开发平台前后端脚手架。Bladex。官网【https://bladex.vip/#/】经测试,真的不错,该有的功能都有。比我自己写的好太多了。下面博客仅记录整个环境搭建和简单配置开发的流程。

1.授权
  这里还是推荐购买授权,也就3999,永久使用。对于一个公司来说,这个费用真的特别划算。下面介绍将以商业授权版本的Bladex-Boot作为介绍入门。获得授权后,对方会给一个私有git仓库的帐号密码,登陆后,下载源代码,前后端代码下载后,导入到IDE。

2.配置后端
  这里我是用2.1.0版本,IDE,我用的是Eclipse,需要安装lombok插件。至于数据库Postgresql、Redis,还有前端的NodeJS、VSCode这些自行安装。
  首先创建数据库,导入SQL脚本。这里我以postgresql为例。

  配置application-dev.yaml

  配置application.yml,注意修改端口,我这边改成8080

  以上配置后,就启动项目,启动后,由于前后端分离,我们还没有配置Saber,可以先访问http://127.0.0.1:8080/doc.html,确认BladeX是否正常启动。

3.配置前端
  我这里前后端是部署在不同的机器上。首先,下载代码,导入到VSCode上。
  修改vue.config.js的几个配置,target改为BladeX的访问地址和端口。devServer.port是BladeX的访问地址。

  配置后,运行命令启动服务

 yarn install
 yarn run serve

  访问:http://172.16.23.241:8080/

  点击登录后,到此,我们已经完成BladeX的环境安装和搭建了。

4.写个简单的Demo
  创建数据库表

 --测试表
 create table tb_wunaozai(
     id bigserial primary key,   --主键id,一般表格必须带上
     title ),         --自定义,标题
     content ),       --自定义,内容
     time timestamp,             --自定义,时间
     info ),          --自定义,备注
     tenant_id ),      --如果启用多租户,需要带上
     create_user bigint,         --必选,创建用户ID
     create_dept bigint,         --必选,创建部门ID
     create_time timestamp,      --必选,创建时间
     update_user bigint,         --必选,更新 用户ID
     update_time timestamp,      --必选,更新时间
     status int,                 --必选,状态
     is_deleted int              --必选,软删除
 );

  系统后台,配置数据源,然后自动生成代码


  数据源:在数据源管理中的配置,用于选择从对应的库获取数据
  模块名:用于指定配置的名称,对代码生成不产生实际效果
  服务名:生成后,controller对应的前缀,以及分割 - 符号后面的字符串作为前端的分包名
  表名:用于代码生成所对应的表名称
  表前缀:生成实体类的时候,忽略掉的前缀,若不配置,则 tb_wunaozai 表生成的实体为 TbWunaozai ,若配置了 tb_ 为前缀,则生成的实体为Wunaozai
  主键名:表的主键名称
  包名:生成后端代码所在的包
  基础业务:如果选择是,则实体会继承 BaseEntity ,带有上一章红框的基础业务字段
  包装器:在某些复杂的模块,会用到 VO 和 Wrapper ,如果选择是则会自行生成
  后端生成路径:后端工程的根目录
  前端生成路径:前端工程的根目录

  那个生成路径,可以直接写项目根目录,但是我觉得有点风险,还是保存到其他目录,然后根据实际拷贝过去。

  将对应的生成的前端代码放到Saber目录下。

5. 配置菜单、权限
  在生成的后端代码里面有生成菜单的SQL,直接执行数据库SQL即可。

 INSERT INTO blade_menu(id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted)
 , , , , , );
 INSERT INTO blade_menu(id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted)
 , , , , );
 INSERT INTO blade_menu(id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted)
 , , , , );
 INSERT INTO blade_menu(id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted)
 , , , , );
 INSERT INTO blade_menu(id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted)
 , , , , );

  执行后,刷新前端页面,然后需要简单编辑调整一下。这里我放到工作台的下级菜单


  重启BladeX和Saber,然后打开新增加的功能页。

6.修改、调整前端代码
  修改wunaozai.vue主键里面的data数据的option属性。

       option: {
           height:'auto',
           calcHeight: 350,
           tip: false,
           border: true,
           index: true,
           viewBtn: true,
           selection: true,
           column: [
             {
               label: "标题",
               prop: "title",
               span: 12,
               search: true,
               rules: [{
                 required: true,
                 message: "请输入",
                 trigger: "blur"
               }]
             },
             {
               label: "时间",
               prop: "time",
               span: 12,
               type: 'date',
               format: 'yyyy-MM-dd',
               valueFormat: 'yyyy-MM-dd 00:00:00',
               rules: [{
                 required: true,
                 message: "请输入",
                 trigger: "blur"
               }]
             },
             {
               label: "内容",
               prop: "content",
               span: 24,
               type: "textarea",
               minRows: 6,
               rules: [{
                 required: true,
                 message: "请输入",
                 trigger: "blur"
               }]
             },
             {
               label: "备注",
               prop: "info",
               span: 24,
               rules: [{
                 message: "请输入",
                 trigger: "blur"
               }]
             },
           ]
         }

  调整后,显示的效果。

  更多配置,请参考这个文档 https://avuejs.com/doc/crud/crud-doc
  那个刷新按钮没有响应事件需要增加
  @refresh-change="refreshChange"

       refreshChange(page){
         this.onLoad(this.page);
       }

  至于模糊查询,就需要写代码了。本次不详细说明。
  到此,简单的搭建环境和CURD功能已经完成,还是比较简单的,需要写代码的地方不多,简单配置一下,就是一个页面。

本文地址:https://www.cnblogs.com/wunaozai/p/11739874.html
个人主页:https://www.wunaozai.com/

物联网架构成长之路(39)-Bladex开发框架环境搭建的更多相关文章

  1. 物联网架构成长之路(40)-Bladex开发框架入门

    0. 前言 前一小节,讲了如何入门,这里就简单讲一下如何自定义查询和权限控制配置. 1. 配置多租户 如果要启用该表的多租户功能,需要在application.yml 这里配置. 2. 配置模糊匹配 ...

  2. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

  3. 物联网架构成长之路(31)-EMQ基于HTTP权限验证

    看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...

  4. 物联网架构成长之路(16)-SpringCloud从入门到吹水

    1.前言 Spring Cloud 现在比较流行,版本更新也是蛮快的,网上资料也是很多.很多参考网上资料就可以学到了.这里给个 http://blog.csdn.net/forezp/article/ ...

  5. 物联网架构成长之路(24)-Docker练习之Compose容器编排

    0.前言 一开始学的之后,是想一步到位直接上Kubernetes(K8s)的,后面没想到,好像有点复杂,有些概念不是很懂.因此学习东西还是要循序渐进,慢慢来.先了解单机编排技术Docker Compo ...

  6. 物联网架构成长之路(35)-利用Netty解析物联网自定义协议

    一.前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式.这种方式,大部分一看就知道是熟悉Web开发.软件开发的人喜欢用的方式.由于我也是做 ...

  7. 物联网架构成长之路(33)-EMQ数据存储到influxDB

    一.前言 时隔一年半,技术变化特别快,学习也要跟上才行.以前写过EMQ数据转存问题,当时用了比较笨的方法,通过写插件的方式,把MQTT里面的数据发送到数据库进行存储.当时也是为了学习erlang和em ...

  8. 物联网架构成长之路(29)-Jenkins环境搭建

    0. 说明 哈哈,前面中间插入了一篇Eclipse增加Git插件,在此之前真的没有用过GIT. 1. 运行Jenkins 这里为了方便,还是用Docker方式安装,由于这个是标准的war报,不对Doc ...

  9. 物联网架构成长之路(3)-EMQ消息服务器了解

    1. 了解 物联网最基础的就是通信了.通信协议,物联网协议好像有那么几个,以前各个协议都有优劣,最近一段时间,好像各大厂商都采用MQTT协议,所以我也不例外,不搞特殊,采用MQTT协议,选定了协议,接 ...

随机推荐

  1. Spring 中AOP及前后置增强案例

    1.AOP面向切面编程 面向切面编程的本质:面向切面编程,指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来.  1主要功能:日志记录,性能统计,安全控制,事务处理,异常处理等等.  2主要意 ...

  2. Python模块import本质是什么?import是什么

    ​ 写这篇文章主要是对Python的import模块或包的机制有了更深层级的一个理解,也在具体工作中得到了一点实践,这种思考是由上一篇文章<__main__内置模块预加载Shotgun接口的妙用 ...

  3. openpyxl常用API

    worksheet.cell(self, row, column, value=None)描述:给指定位置的单元格赋值参数: row&column:必须参数,单元格的坐标 value:可选参数 ...

  4. 【Oracle】Oracle常用命令整理(持续更新中)

    一些常用的操作命令记录 SQLPlus连接 sqlplus {username}/{password}@{ip}:{port}/{sid} 创建用户 create user testuser iden ...

  5. IT兄弟连 Java语法教程 数据类型 进制转换

    ●  正十进制转换为二进制 拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则写0.如: 34 = 32 + 2 128 64 32 16 8 4 2 1 0  0  1  0 ...

  6. Jenkins—Master/Slave模式

    Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...

  7. Java并发编程入门,看这一篇就够了

    Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容.这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类.当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉 ...

  8. WPF/.net core WPF 系统托盘支持

    WPF 原生不支持系统托盘图标,需要依靠其它方式处理. 1 使用 WinForm 的支持 WPF最小到系统托盘 - Arvin.Mei - 博客园 2 使用 wpf-notifyicon 库 hard ...

  9. linux tmux用法

    1. 安装工具 Centos : yum install tmux 2. 基本操作 新建会话:tmux new -s session-name 查看会话:tmux ls 进入会话:tmux a -t  ...

  10. mysql 是否走索引问题

    问题探讨 : 当一列包含null 值时, is null  和 is not null  查询是否走索引 当用 != 时是否走索引 当用in时是否走索引 结论:当 查询范围比较小时, 以上枚举的都走索 ...