前言

Thingsboard是一款基于springcloud,非常优秀的物联网平台,其开源版本CE版已经提供了丰富的物联网功能,我们可以基于Thingsboard快速构建自己的物联网平台,但实际项目中一般都需要基于Thingsbaord扩展特定的业务功能。

Thingsboard架构相对来说比较复杂,代码的抽象级别比较高,对于初学者是比较难的,本文总结了后端代码增加一个完整实体的过程。
实体在Thingsboard中就对应一个数据库的表,实体代表则可进行数据的存储,读写等操作。

后端增加实体的步骤

本文以增加一个Defect实体为例介绍步骤,不做代码介绍。

序号步骤文件
1增加新的实体类型org/thingsboard/server/common/data/EntityType.java
2创建实体ID类org/thingsboard/server/common/data/id/DefectId.java
3创建实体类org/thingsboard/server/common/data/Defect.java
4增加实体最大数量配置org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java
5增加ModelConstantsorg/thingsboard/server/dao/model/ModelConstants.java
6增加Service interfacecommon/dao-api/src/main/java/org/thingsboard/server/dao/defect/DefectService.java
7增加实体类modelorg/thingsboard/server/dao/model/sql/DefectEntity.java
8增加Sql interfaceorg/thingsboard/server/dao/sql/defect/DefectRepository.java
9增加Dao interfaceorg/thingsboard/server/dao/defect/DefectDao.java
10增加Dao Imporg/thingsboard/server/dao/defect/DefectServiceImpl.java
11增加JpaDAOorg/thingsboard/server/dao/sql/defect/JpaDefectDao.java
12增加controllerorg/thingsboard/server/controller/DefectController.java
13Resource 增加enumorg/thingsboard/server/service/security/permission/Resource.java
14在BaseController中增加Service装配声明org/thingsboard/server/controller/BaseController.java
15在BaseController中增加相应实体CheckID功能org/thingsboard/server/controller/BaseController.java
16增加实体Factory支持org/thingsboard/server/common/data/id/EntityIdFactory.java
17增加访问权限,否则Save的时候会提示无访问权限org/thingsboard/server/service/security/permission/TenantAdminPermissions.java
18增加AccessValidator,否则会点击属性会显示Not Implemented!org/thingsboard/server/service/security/AccessValidator.java
19在函数fetchEntityNameAsync 增加实体功能,否则会在显示relation时提示Not Implemented!org/thingsboard/server/dao/entity/BaseEntityService.java

只要严格按照此步骤增加相应的代码,并添加相应的数据库表,即增加一个完整的实体对象,并提供实体访问的HTTP API,前端可以调用。具体每个步骤如何编写,都是相对通用的Java代码,这里不做介绍,大家只需要模仿其他的实体对象代码即可。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐