Dataway整合Spring Boot

一嗅义、創(chuàng)建spring?boot項(xiàng)目工程

二帐我、添加dataway需要引用的兩種依賴hasor-spring、hasor-dataway,hasor-spring是提供spring和dataway需要的環(huán)境

? ? <dependency>

? ? ? ? ?<groupId>net.hasor</groupId>

? ? ? ? ?<artifactId>hasor-spring</artifactId>

? ? ? ? ?<version>4.1.13</version>

? ? ?</dependency>

? ? <dependency>

? ? ? ? ?<groupId>net.hasor</groupId>

? ? ? ? ?<artifactId>hasor-dataway</artifactId>

? ? ? ? ? <version>4.1.13</version>

? ? </dependency>

三胰蝠、在對(duì)應(yīng)的application.properties或者application.yml中添加如下參數(shù)

? ? 1)? dataway參數(shù)如下,前兩種必選震蒋,默認(rèn)false關(guān)閉狀態(tài)

? ? # 是否啟用 Dataway 功能(必選:默認(rèn)false)

????HASOR_DATAQL_DATAWAY=true

????# 是否開啟 Dataway 后臺(tái)管理界面(必選:默認(rèn)false)

????HASOR_DATAQL_DATAWAY_ADMIN=true

????# dataway? API工作路徑(可選茸塞,默認(rèn):/api/)

????HASOR_DATAQL_DATAWAY_API_URL=/api/

????# dataway-ui 的工作路徑(可選,默認(rèn):/interface-ui/)

????HASOR_DATAQL_DATAWAY_UI_URL=/interface-ui/

????# SQL執(zhí)行器方言設(shè)置(可選查剖,建議設(shè)置)

????HASOR_DATAQL_FX_PAGE_DIALECT=mysql

????2)配置數(shù)據(jù)庫參數(shù)如下,并在hasor-dataway-4.1.13.jar > META-INF > hasor-framework? > mysql(因?yàn)楸疚氖褂玫氖莔ysql钾虐,如果你用的不是mysql也可以在同路徑中查找interface_info.sql、interface_release.sql兩個(gè)sql建表語句笋庄,目前4.1.13支持四種數(shù)據(jù)庫(mysql效扫、oracle、postgresql直砂、sqlserver2012))

? ??# db

????spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xx

????spring.datasource.username=xxxx

????spring.datasource.password=xxxx

????spring.datasource.driver-class-name=com.mysql.jdbc.Driver

????spring.datasource.type:com.alibaba.druid.pool.DruidDataSource

? ? #interface_info.sql

? ??CREATE TABLE `interface_info` (

? ?? ???`api_id`? ? ? ? ? int(11)? ? ? NOT NULL AUTO_INCREMENT? COMMENT 'ID',

? ?? ???`api_method`? ? ? varchar(12)? NOT NULL? ? ? ? ? ? ? ? ? COMMENT 'HttpMethod:GET菌仁、PUT、POST',

? ?? ???`api_path`? ? ? ? varchar(512) NOT NULL? ? ? ? ? ? ? ? ? COMMENT '攔截路徑',

??? ??? `api_status`? ? ? int(2)? ? ? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '狀態(tài):0草稿静暂,1發(fā)布济丘,2有變更,3禁用',

? ?? ???`api_comment`? ? varchar(255)? ? NULL? ? ? ? ? ? ? ? ? COMMENT '注釋',

? ?? ??`api_type`? ? ? ? varchar(24)? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '腳本類型:SQL洽蛀、DataQL',

??? ??? `api_script`? ? ? mediumtext? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '查詢腳本:xxxxxxx',

? ?? ???`api_schema`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '接口的請(qǐng)求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',

? ?? ???`api_sample`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '請(qǐng)求/響應(yīng)/請(qǐng)求頭樣本數(shù)據(jù)',

? ?? ???`api_option`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '擴(kuò)展配置信息',

? ?? ???`api_create_time` datetime? ? DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',

? ??? ??`api_gmt_time`? ? datetime? ? DEFAULT CURRENT_TIMESTAMP COMMENT '修改時(shí)間',

? ?? ???PRIMARY KEY (`api_id`)

? ??) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway 中的API';

? ??create unique index idx_interface_info on interface_info (api_method, api_path);

? ??#interface_release.sql

? ??CREATE TABLE `interface_release` (

? ??? ??`pub_id`? ? ? ? ? int(11)? ? ? NOT NULL AUTO_INCREMENT? COMMENT 'Publish ID',

? ??? ??`pub_api_id`? ? ? int(11)? ? ? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '所屬API ID',

? ??? ??`pub_method`? ? ? varchar(12)? NOT NULL? ? ? ? ? ? ? ? ? COMMENT 'HttpMethod:GET摹迷、PUT、POST',

? ?? ???`pub_path`? ? ? ? varchar(512) NOT NULL? ? ? ? ? ? ? ? ? COMMENT '攔截路徑',

? ??? ??`pub_status`? ? ? int(2)? ? ? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '狀態(tài):0有效郊供,1無效(可能被下線)',

? ?? ???`pub_type`? ? ? ? varchar(24)? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '腳本類型:SQL峡碉、DataQL',

? ??? ??`pub_script`? ? ? mediumtext? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '查詢腳本:xxxxxxx',

? ?? ???`pub_script_ori`? mediumtext? NOT NULL? ? ? ? ? ? ? ? ? COMMENT '原始查詢腳本,僅當(dāng)類型為SQL時(shí)不同',

? ?? ???`pub_schema`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '接口的請(qǐng)求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',

? ??? ??`pub_sample`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '請(qǐng)求/響應(yīng)/請(qǐng)求頭樣本數(shù)據(jù)',

? ??? ??`pub_option`? ? ? mediumtext? ? ? NULL? ? ? ? ? ? ? ? ? COMMENT '擴(kuò)展配置信息',

? ??? ??`pub_release_time`datetime? ? DEFAULT CURRENT_TIMESTAMP COMMENT '發(fā)布時(shí)間(下線不更新)',

? ??? ??PRIMARY KEY (`pub_id`)

? ??) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway API 發(fā)布記錄';

? ??create index idx_interface_release on interface_release (pub_api_id);

? ? 3)?配置druid

????# druid

????spring.datasource.druid.initial-size=3

????spring.datasource.druid.min-idle=3

????spring.datasource.druid.max-active=10

????spring.datasource.druid.max-wait=60000

????spring.datasource.druid.stat-view-servlet.login-username=admin

????spring.datasource.druid.stat-view-servlet.login-password=admin

????spring.datasource.druid.filter.stat.log-slow-sql=true

????spring.datasource.druid.filter.stat.slow-sql-millis=1

四驮审、添加spring相關(guān)依賴如下所示

? ??<dependency>

? ? ????<groupId>mysql</groupId>

? ? ????<artifactId>mysql-connector-java</artifactId>

? ? ????<version>5.1.30</version>

????</dependency>

????<dependency>

? ????? <groupId>com.alibaba</groupId>

? ? ????<artifactId>druid</artifactId>

? ? ????<version>1.1.21</version>

????</dependency>

????<dependency>

? ? ????<groupId>org.springframework.boot</groupId>

? ? ????<artifactId>spring-boot-starter-jdbc</artifactId>

????</dependency>

????<dependency>

? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? <artifactId>spring-boot-starter-web</artifactId>

? ? </dependency>

????<dependency>

? ?????<groupId>com.alibaba</groupId>

? ? ????<artifactId>druid-spring-boot-starter</artifactId>

? ? ????<version>1.1.10</version>

????</dependency>

? ? 注解:這里需要額外引入以下依賴防止啟動(dòng)報(bào)錯(cuò)找不到

? ??<parent>

? ???? <groupId>org.springframework.boot</groupId>

????? <artifactId>spring-boot-starter-parent</artifactId>

? ???? <version>2.0.3.RELEASE</version>

????? </parent>

? ? 五鲫寄、編寫ExampleModule類繼承SpringModule,并在創(chuàng)建項(xiàng)目的啟動(dòng)類上添加@EnableHasor头岔、@EnableHasorWeb兩注解來啟用 Hasor和Hasor Web塔拳,前者在bean上標(biāo)記了 @DimModule 注解并且實(shí)現(xiàn)了 Module 接口鼠证,那么它們會(huì)被作為 Hasor 的初始化 Module峡竣;后者配置?了Hasor 的全局?jǐn)r截器和監(jiān)聽器。

????@DimModule

????@Component

????public class ExampleModule implements SpringModule{

????????@Autowired

? ? ????private DataSource dataSource = null;

????????@Override

????????public void loadModule(ApiBinder apiBinder) throws Throwable {

????????apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));

????????}

????}

六量九、啟動(dòng)項(xiàng)目适掰,看到如下日志颂碧,項(xiàng)目則配置成功,可直接本地訪問http://localhost:8080/interface-ui/#/

2020-08-03 14:50:32.896 INFO 79548 --- [ost-startStop-1] net.hasor.dataway.config.DatawayModule : dataway api workAt /api/

2020-08-03 14:50:32.896? INFO 79548 --- [ost-startStop-1] n.h.c.environment.AbstractEnvironment? ? : var -> HASOR_DATAQL_DATAWAY_API_URL = /api/.

2020-08-03 14:50:32.908? INFO 79548 --- [ost-startStop-1] net.hasor.dataway.config.DatawayModule? : dataway self isolation ->net.hasor.dataway.config.DatawayModule

2020-08-03 14:50:32.912? INFO 79548 --- [ost-startStop-1] net.hasor.dataway.config.DatawayModule? : dataway admin workAt /interface-ui/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末类浪,一起剝皮案震驚了整個(gè)濱河市载城,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌费就,老刑警劉巖诉瓦,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異力细,居然都是意外死亡睬澡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門眠蚂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煞聪,“玉大人,你說我怎么就攤上這事逝慧∥舾” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵笛臣,是天一觀的道長云稚。 經(jīng)常有香客問我,道長沈堡,這世上最難降的妖魔是什么碱鳞? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮踱蛀,結(jié)果婚禮上窿给,老公的妹妹穿的比我還像新娘。我一直安慰自己率拒,他們只是感情好崩泡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猬膨,像睡著了一般角撞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天潮改,我揣著相機(jī)與錄音缨称,去河邊找鬼。 笑死劣领,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铁材。 我是一名探鬼主播尖淘,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼奕锌,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了村生?” 一聲冷哼從身側(cè)響起惊暴,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趁桃,沒想到半個(gè)月后辽话,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卫病,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年屡穗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忽肛。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡村砂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屹逛,到底是詐尸還是另有隱情础废,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布罕模,位于F島的核電站评腺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淑掌。R本人自食惡果不足惜蒿讥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抛腕。 院中可真熱鬧芋绸,春花似錦、人聲如沸担敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽全封。三九已至马昙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刹悴,已是汗流浹背行楞。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留土匀,地道東北人子房。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像恒削,于是被迫代替她去往敵國和親池颈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尾序,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348