Spring Boot 入门(十三):集成Hasor的Dataway…
2020-05-13 16:11:59来源:博客园 阅读 ()
Spring Boot 入门(十三):集成Hasor的Dataway模块,干掉后台,自动配置接口
spring boot集成hasor下的dataway,干掉后台,自动配置接口,实现0代码搭建接口终于出湖北了,封闭2个月,家里没电脑,感觉好久没自主撸代码啊啊啊啊啊啊啊啊啊啊啊啊啊。
连接上篇文章Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率,继续从入门到入坑。
dataWay刚刚开源,具体介绍可以去官网看https://www.hasor.net/web/overview/about.html,中国的开源软件,终于不用看蝌蚪英文了。
1.dataWay已经捐献给Apache,后续有可靠团队维护,可以放心大胆使用
2.dataWay只支持JDK1.8及以上,目前只支持mysql和oracle数据库
3.目前发展到4.1.4,最近看了些博客,不少人反应存在少许不足
1.代码
spring boot 集成Dataway网上已经有不少很好的博客了,官网https://www.hasor.net/web/dataway/for_boot.html也很详细,我简答的贴下相关代码
- 依赖
1 <!--begin dataWay--> 2 <!--hasor-spring 负责 Spring 和 Hasor 框架之间的整合--> 3 <dependency> 4 <groupId>net.hasor</groupId> 5 <artifactId>hasor-spring</artifactId> 6 <version>4.1.3</version> 7 </dependency> 8 <!--hasor-dataway 是工作在 Hasor 之上,利用 hasor-spring 我们就可以使用 dataway了。--> 9 <dependency> 10 <groupId>net.hasor</groupId> 11 <artifactId>hasor-dataway</artifactId> 12 <version>4.1.3-fix20200414</version><!-- 4.1.3 包存在UI资源缺失问题 --> 13 </dependency> 14 <!--end dataWay-->
- yml配置文件
1 #dataway config 2 # 是否启用 Dataway 功能(必选:默认false) 3 HASOR_DATAQL_DATAWAY: true 4 # 是否开启 Dataway 后台管理界面(必选:默认false) 5 HASOR_DATAQL_DATAWAY_ADMIN: true 6 # dataway API工作路径(可选,默认:/api/) 7 HASOR_DATAQL_DATAWAY_API_URL: /api/ 8 # dataway-ui 的工作路径(可选,默认:/interface-ui/) 9 HASOR_DATAQL_DATAWAY_UI_URL: /interface-ui/ 10 # SQL执行器方言设置(可选,建议设置) 11 HASOR_DATAQL_FX_PAGE_DIALECT: mysql
- 新增类
1 package com.learn.hello.system.common.hasor; 2 3 import net.hasor.core.ApiBinder; 4 import net.hasor.core.DimModule; 5 import net.hasor.db.JdbcModule; 6 import net.hasor.db.Level; 7 import net.hasor.spring.SpringModule; 8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.stereotype.Component; 10 11 import javax.sql.DataSource; 12 13 /** 14 * @ClassName DatawayModule 15 * @Deccription TODO 16 * @Author DZ 17 * @Date 2020/5/13 21:48 18 **/ 19 @DimModule 20 @Component 21 public class DatawayModule implements SpringModule { 22 @Autowired 23 private DataSource dataSource = null; 24 @Override 25 public void loadModule(ApiBinder apiBinder) throws Throwable { 26 apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource)); 27 } 28 }
- spring启动类开启hasor
- sql建表,可以参考官网,官网提供了mysql和oracle语句
1 CREATE TABLE `interface_info` ( 2 `api_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', 3 `api_method` varchar(12) NOT NULL COMMENT 'HttpMethod:GET、PUT、POST', 4 `api_path` varchar(512) NOT NULL COMMENT '拦截路径', 5 `api_status` int(2) NOT NULL COMMENT '状态:0草稿,1发布,2有变更,3禁用', 6 `api_comment` varchar(255) NULL COMMENT '注释', 7 `api_type` varchar(24) NOT NULL COMMENT '脚本类型:SQL、DataQL', 8 `api_script` mediumtext NOT NULL COMMENT '查询脚本:xxxxxxx', 9 `api_schema` mediumtext NULL COMMENT '接口的请求/响应数据结构', 10 `api_sample` mediumtext NULL COMMENT '请求/响应/请求头样本数据', 11 `api_option` mediumtext NULL COMMENT '扩展配置信息', 12 `api_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 13 `api_gmt_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', 14 PRIMARY KEY (`api_id`) 15 ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway 中的API'; 16 17 CREATE TABLE `interface_release` ( 18 `pub_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Publish ID', 19 `pub_api_id` int(11) NOT NULL COMMENT '所属API ID', 20 `pub_method` varchar(12) NOT NULL COMMENT 'HttpMethod:GET、PUT、POST', 21 `pub_path` varchar(512) NOT NULL COMMENT '拦截路径', 22 `pub_status` int(2) NOT NULL COMMENT '状态:0有效,1无效(可能被下线)', 23 `pub_type` varchar(24) NOT NULL COMMENT '脚本类型:SQL、DataQL', 24 `pub_script` mediumtext NOT NULL COMMENT '查询脚本:xxxxxxx', 25 `pub_script_ori` mediumtext NOT NULL COMMENT '原始查询脚本,仅当类型为SQL时不同', 26 `pub_schema` mediumtext NULL COMMENT '接口的请求/响应数据结构', 27 `pub_sample` mediumtext NULL COMMENT '请求/响应/请求头样本数据', 28 `pub_option` mediumtext NULL COMMENT '扩展配置信息', 29 `pub_release_time`datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间(下线不更新)', 30 PRIMARY KEY (`pub_id`) 31 ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway API 发布历史。'; 32 33 create index idx_interface_release on interface_release (pub_api_id);
2.启动
按照官网,启动的log中需要有dataway相关日志,才算启动成功,如下
我启动的时候,就没有相关日志,也能正常使用,现在还不知道具体原因,后续探讨。如下我的启动log。大家启动后发现没有相关日志可以先试试dataway能否使用(能否访问dataWay的url),如果能正常使用,可以先忽略日志问题。
3.配置接口
访问url:http://localhost:8080/interface-ui/#/
这里有个坑:执行sql返回Unknown SqlMode 如图
是因为sql不在第一行,第一行会自动生成一个默认注释,删掉注释就好了。如图
此外,需要拦截器中过滤dataWay的访问url,否则会被拦截,导致只有登录情况下才能访问。注意安全配置
代码已传至git:https://gitee.com/bald_dz/SpringbootLean
原文链接:https://www.cnblogs.com/dz-boss/p/12885639.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash