Thingsboard二次开发---1. 增加新实体后端开发步骤
·
前言
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代码,这里不做介绍,大家只需要模仿其他的实体对象代码即可。
更多推荐
已为社区贡献7条内容
所有评论(0)