前言
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 | 增加ModelConstants | org/thingsboard/server/dao/model/ModelConstants.java |
| 6 | 增加Service interface | common/dao-api/src/main/java/org/thingsboard/server/dao/defect/DefectService.java |
| 7 | 增加实体类model | org/thingsboard/server/dao/model/sql/DefectEntity.java |
| 8 | 增加Sql interface | org/thingsboard/server/dao/sql/defect/DefectRepository.java |
| 9 | 增加Dao interface | org/thingsboard/server/dao/defect/DefectDao.java |
| 10 | 增加Dao Imp | org/thingsboard/server/dao/defect/DefectServiceImpl.java |
| 11 | 增加JpaDAO | org/thingsboard/server/dao/sql/defect/JpaDefectDao.java |
| 12 | 增加controller | org/thingsboard/server/controller/DefectController.java |
| 13 | Resource 增加enum | org/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代码,这里不做介绍,大家只需要模仿其他的实体对象代码即可。
本文详细介绍在Thingsboard中新增实体的具体步骤,从实体类型定义到访问权限设置,为开发者提供了一个全面的指南。
2万+

被折叠的 条评论
为什么被折叠?



