关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

从零开始搭建物联网平台(五)服务端

发布时间:2023-06-26 22:00:38

服务端采用Springboot、JPA、Mysql为基本框架,同时接入了EMQ、JWT、微信认证、Lombook、的一些组件

一、框架搭建

使用IDEA创建项目,选择spring initializr 初始化SpringBoot项目,然后勾选JPA、Lombok、springweb的插件,一路next这样一个基本的springboot项目就搭建起来了。


二、EMQ接入

1. 引入JAR包

因涉及一些执行语句,禁止写入,请联系客服获取

2.application.yml添加配置文件

host-url的地址替换为我们部署的EMQ的地址端口号默认为1883

因涉及一些执行语句,禁止写入,请联系客服获取

3.代码配置

3.1 MqttConfiguration类 

用来处理订阅、和发布消息的工厂类。

因涉及一些执行语句,禁止写入,请联系客服获取

3.2 JobListener

触发MqttConfiguration 中的event topic 事件,做消息通道的分别处理

因涉及一些执行语句,禁止写入,请联系客服获取

3.3 MqttEvent

topic事件类

因涉及一些执行语句,禁止写入,请联系客服获取

3.4 MqttGateway

消息发送接口

因涉及一些执行语句,禁止写入,请联系客服获取


三、微信接入

1.引入JAR包

因涉及一些执行语句,禁止写入,请联系客服获取

2.配置文件yml

因涉及一些执行语句,禁止写入,请联系客服获取

3.代码集成

3.1 WxMaProperties

读取微信yml中的配置文件

因涉及一些执行语句,禁止写入,请联系客服获取

3.2 WxMaConfiguration

微信配置中心

因涉及一些执行语句,禁止写入,请联系客服获取

3.3 WxPortalController

接受微信认证服务器数据,此处注意需要在微信小程序平台【开发】【开发设置】【消息推送】中配置一下,关于小程序的详细配置,会在后面的章节单独详细说明,此处仅配置认证接口。

因涉及一些执行语句,禁止写入,请联系客服获取

3.4 WxApiController

自定义接口,用来自定义用户登录的操作

 

因涉及一些执行语句,禁止写入,请联系客服获取

四、集成JWT

1.引入JAR包

因涉及一些执行语句,禁止写入,请联系客服获取

2.添加配置文件yml

因涉及一些执行语句,禁止写入,请联系客服获取

3.代码集成

3.1 Audience

读取配置文件信息

因涉及一些执行语句,禁止写入,请联系客服获取

3.2 JwtTokenUtil

生成JWT和校验JWT

因涉及一些执行语句,禁止写入,请联系客服获取

3.3LoginConfiguration

配置拦截器

因涉及一些执行语句,禁止写入,请联系客服获取

3.4LoginInterceptor

实现拦截器

因涉及一些执行语句,禁止写入,请联系客服获取


3.5 JwtIgnore

忽略JWT校验注解,比如上边的微信认证的接口我就使用了这个注解忽略jwt校验。

因涉及一些执行语句,禁止写入,请联系客服获取

3.5 UserController

登录创建JWT

因涉及一些执行语句,禁止写入,请联系客服获取

3.6 普通controller获取jwt中的用户数据

在CommonController中调用JwtTokenUtil解析token获得用户数据

在普通Controller中就可以直接super.getUserid(request)获取用户信息

五、集成定时任务

1.引入JAR包

因涉及一些执行语句,禁止写入,请联系客服获取


2.代码集成

2.1 QuartzJobConfig

配置类

因涉及一些执行语句,禁止写入,请联系客服获取

2.2 JobFactory

定时任务工厂

因涉及一些执行语句,禁止写入,请联系客服获取

2.3 JobHeart

一个模拟的定时任务,这是一个心跳定时任务

因涉及一些执行语句,禁止写入,请联系客服获取

2.4 QuartzConfig

配置类

因涉及一些执行语句,禁止写入,请联系客服获取


2.5 QuartzManager

定时任务Handle可以创建、删除定时任务

因涉及一些执行语句,禁止写入,请联系客服获取

2.6 JobController

提供可调用的定时任务接口

因涉及一些执行语句,禁止写入,请联系客服获取


2.7 CronDateUtil

非常有用的工具类,可以将时间类型转为cron表达式,也可以将cron表达式转化为事件类型

因涉及一些执行语句,禁止写入,请联系客服获取


六、集成HTTPClient

1.引入JAR包

因涉及一些执行语句,禁止写入,请联系客服获取


2.RestTemplateConfig

配置文件

因涉及一些执行语句,禁止写入,请联系客服获取

3. 调用

因涉及一些执行语句,禁止写入,请联系客服获取

七、EMQ-HTTP鉴权接口及API调用

1. EmqApiServiceImpl(EMQAPI调用接口)

因涉及一些执行语句,禁止写入,请联系客服获取

2. EmqApiController(EMQAPI控制器)

因涉及一些执行语句,禁止写入,请联系客服获取

/template/Home/leiyu/PC/Static