Dataway 快速开发工具

317 阅读2分钟

陶渊明(约365—427年),名潜,字元亮,别号五柳先生,卒后私谥靖节,世称靖节先生。浔阳柴桑(今江西省九江市)人,一作宜丰人。东晋末到刘宋初杰出的诗人、辞赋家、散文家。被誉为“隐逸诗人之宗”、“田园诗派之鼻祖”。是江西首位文学巨匠。

快速开发、低代码

Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目研发成本。Dataway 工具化的提供 DataQL 配置能力。这种研发模式的变革使得,相当多的需求开发场景只需要配置即可完成交付。从而避免了从数据存取到前端接口之间的一系列开发任务,例如:Mapper、BO、VO、DO、DAO、Service、Controller 统统不在需要。

什么是Hasor

Hasor框架

Hasor起源于2012年,由新东方教育科技集团研发中心参与研发,在2015年7月3日正式发布。

Spring 和 Hasor 框架之间的整合

	<dependency>
		<groupId>net.hasor</groupId>
		<artifactId>hasor-spring</artifactId>
		<version>4.2.5</version>
	</dependency>

hasor-dataway 是工作在 Hasor 之上,利用 hasor-spring 我们就可以使用 dataway了。

	<dependency>
		<groupId>net.hasor</groupId>
		<artifactId>hasor-dataway</artifactId>
		<version>4.2.5</version>
	</dependency>

其他相关组件

druid + mysql + spring-boot-starter-jdbc

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>8.0.30</version>
	</dependency>
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>1.2.11</version>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
	</dependency>
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid-spring-boot-starter</artifactId>
		<version>1.2.11</version>
	</dependency>

application.properties 配置文件

dataway

HASOR_DATAQL_DATAWAY=true
HASOR_DATAQL_DATAWAY_ADMIN=true
HASOR_DATAQL_DATAWAY_API_URL=/api/
HASOR_DATAQL_DATAWAY_UI_URL=/interface-ui/
HASOR_DATAQL_FX_PAGE_DIALECT=mysql

database

spring.datasource.url=jdbc:mysql://p5v7lf0v0381.us-east-4.psdb.cloud:3306/cheng-qiang?characterEncoding=UTF-8&useSSL=true&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
spring.datasource.username=bw4vqrtvy6am
spring.datasource.password=pscale_pw_SaqayyYxogNcJ93dvlQ0tfduFHloZBDlBf7Mu_r7Bj8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

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.mvc.pathmatch.matching-strategy=ant_path_matcher

中文乱码

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true

开启Hasor插件

import net.hasor.spring.boot.EnableHasor;
import net.hasor.spring.boot.EnableHasorWeb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableHasor()
@EnableHasorWeb()
@SpringBootApplication
public class DatawayApplication {

    public static void main(String[] args) {
        SpringApplication.run(DatawayApplication.class, args);
    }

}

注入数据源

@DimModule
@Component
public class ExampleModule implements SpringModule {

    @Resource
    private DataSource dataSource = null;

    @Override
    public void loadModule(ApiBinder apiBinder) throws Throwable {
        // 把 Spring 中的数据源设置到 Hasor
        apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));
    }
}

启动Spring Boot 应用

访问地址: http://localhost:8080/interface-ui/

login

效果展示

示例代码