快速入门
快速实现一个自定义集成的后端部分,代码示例
前置条件
在开发集成的后端部分之前,您可能需要知道:
- Beaver IoT 的基本概念以及术语
- Java 的基本语法
- SpringFramework 的基础知识
如果您对以上的知识有一定的了解,那么请继续往下阅读,一步一步完成一个最简单的 Demo。
环境准备
在进行开发前,需要准备以下环境:
- Java IDE (推荐IntelliJ IDEA)
- Java Version 17 SDK
- Maven
- Git CLI
在准备这些完成后,运行以下git命令,获取集成开发的项目源码 beaver-iot-integrations
- SSH
- Https
git clone git@github.com:Milesight-IoT/beaver-iot-integrations.git
git clone https://github.com/Milesight-IoT/beaver-iot-integrations.git
beaver-iot-integrations/
├── integrations/ # 集成目录
│ ├── sample-integrations/ # 示例集成目录
│ │ └── ... # 示例集成
│ ├── msc-integration
│ └── ... # 所有其它集成
(可选) 接下来,获取 Beaver IoT 后端项目源码 beaver-iot
,用于集成开发完成后的测试
- SSH
- Https
git clone git@github.com:Milesight-IoT/beaver-iot.git
git clone https://github.com/Milesight-IoT/beaver-iot.git
使用Java IDE打开这两个项目后就可以开始尝试开发一个集成了。
写一个Hello world
首先,进入beaver-iot-integrations
项目
创建集成元数据
在项目的integrations
模块下新建一个作为这个集成的模块,并为这个模块起一个名字,作为集成的id
[integration-id]
请用你刚刚生成的id替换以下所有示例代码中的[integration-id]
在模块的pom文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.milesight.beaveriot.integrations</groupId>
<artifactId>integrations</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>[integration-id]</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.milesight.beaveriot</groupId>
<artifactId>context</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- in case you have your own dependencies to be packaged -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
scope
为provided
的依赖不会被打包到集成中,而是由Beaver IoT提供,通过maven-shade-plugin
插件将依赖包打包至一个jar包中。
context
模块是Beaver IoT的核心模块,提供了集成开发的基础功能。
新建一个资源文件integration.yaml
integration:
[integration-id]: # integration identifier
name: My Integration Name # integration name
description: "My Demo Integration" # integration description
enabled: true # whether enable this integration. Must be "true" for now
创建Bootstrap类
新建包com.milesight.beaveriot.integrations.[integration-id]
内含一个Java类文件MyIntegrationBootstrap.java
package com.milesight.beaveriot.integrations.[integration-id];
import com.milesight.beaveriot.context.integration.bootstrap.IntegrationBootstrap;
import com.milesight.beaveriot.context.integration.model.Integration;
import org.springframework.stereotype.Component;
@Component
public class MyIntegrationBootstrap implements IntegrationBootstrap {
@Override
public void onPrepared(Integration integration) {
// do nothing
}
@Override
public void onStarted(Integration integrationConfig) {
System.out.println("Hello, world!");
}
@Override
public void onDestroy(Integration integration) {
// do nothing
}
}
这样,你就完成了你的第一个最简单的集成,他可以在Beaver IoT启动初始化集成时打印
Hello, world!
(可选) 启动你的第一个集成
在beaver-iot-integrations
项目中,将你的集成模块install。
进入beaver-iot
项目,将你的集成加入application/application-standard
依赖列表dependencies中
<!-- ... -->
<artifactId>application-standard</artifactId>
<name>application-standard</name>
<!-- ... -->
<dependencies>
<!-- ... -->
<!-- default integrations -->
<!-- ... -->
<dependency>
<groupId>com.milesight.beaveriot.integrations</groupId>
<artifactId>[integration-id]</artifactId>
<version>${project.version}</version>
</dependency>
<!-- ... -->
</dependencies>
<!-- ... -->
</project>
从application-standard
启动,程序加载完成后可以看到控制台输出
Hello, world!