一个简单易用的物联网平台,可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。系统后端采用Springboot;前端采用Vue;消息服务器采用EMQX;技术栈服务端相关技术:Springboot、MyBatis、SpringSecurity、Jwt、Mysql、Redis、TDengine、EMQX、Netty等开发工具:IDEAWeb端相关技术:ES6、Vue、Vuex、Vue-router、Vue-cli、Axios、Element-ui等移动端:包含android和ios安装包系统功能权限管理:用户管理、部门管理、岗位管理、菜单管理
目录前言背景实现分析实现步骤1.身份认证实现自定义的重定向策略应用自定义的重定向策略2.响应401前端拦截4013.票据检验实现自定义的票据校验过滤器应用自定义的票据校验过滤器4.效果演示附录:原理分析1.CAS身份认证关于ajax与重定向使用401响应来代替重定向2.CAS票据检验前言CAS(CentralAuthenticationServer)是Yelu大学研发单点登录解决方案。它包含Server端和Client端,Server一般是每个公司部署一个,Client端则由各个系统自行引入。本文是Java项目,所以本文讨论的都是CAS的Java客户端。CAS客户端主要做两件事,身份认证(默认
文章目录一、Docker安装Kafka1.创建网络2.安装zookeeper3.安装Kafka二、Kafka介绍1.Kafka简介三、SpringBoot整合Kafka1.引入pom依赖2.application.propertise配置3.HelloKafka(Producer)4.ConsumerKafka5.带回调的生产者6.自定义分区器7.kafka事务提交8.指定topic、partition、offset消费9.ConsumerAwareListenerErrorHandler异常处理器10.消息过滤器11.消息转发12.定时启动、停止监听器一、Docker安装Kafka1.创建网
前言项目有多个数据源,根据配置文件配置的连接数来自动生成多数据源配置,并且使用aop切换数据源,使用的是AbstractRoutingDataSource重写determineCurrentLookupKey方法。在切换数据源之前@Transactional先执行,此时会去获取数据源,如果不使用用前置通知(@Before),那么此时数据源还没有切换就会获取默认的数据源,这种情况会导致数据源切换失败。源码:一、其它方式1.1引入Maven依赖org.springframework.bootspring-boot-starter-parent2.1.10.RELEASEUTF-8UTF-81.8o
@SpringBootApplication这个注解其实我们常见但是又不怎么主动使用。这个注解是springboot项目的基石。会默认在启动类上加上。其实我们可以把这个注解看成是多个注解的集合:SpringBootApplication注解源码其中主要的三个注解是:@SpringBootConfiguration:它的底层其实是@Configuration.允许在Spring上下文中注册额外的bean或者导入其它配置类。@SpringBootConfiguration@ComponentScan:扫描被@Component,@Repository,@Service,@Controller注解的
1、说明后端接口设计时候,需要对前端请求参数进行'先校验后处理业务'情况,如果在业务代码中通过类似if这里逐个校验,会使得代码变得繁琐,开发工作者都是爱偷懒的。java中,BeanValidation为JavaBean的验证定义了相关的元数据模型和API。基于Bean-Validation封装,提供了更加丰富的Hibernate-Validation的校验包。也有开发会把这类校验交给前端来处理,但是接口暴露外网会存在直接调用情况(黄牛)。毕竟:前端校验是为了提高用户的体验度,后端校验则是为了保证数据的安全性优点1.验证逻辑与业务逻辑之间进行了分离,降低了程序耦合度2.统一且规范的验证方式,无需
前言日常的业务开发项目中只会配置一套数据源,如果需要获取其他系统的数据往往是通过调用接口,或者是通过第三方工具比如kettle将数据同步到自己的数据库中进行访问。但是也会有需要在项目中引用多数据源的场景。比如如下场景:自研数据迁移系统,至少需要新、老两套数据源,从老库读取数据写入新库自研读写分离中间件,系统流量增加,单库响应效率降低,引入读写分离方案,写入数据是一个数据源,读取数据是另一个数据源某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库。为了在开发中以最简单的方法使用,本文基于注解和AOP的方法实现
一、下载安装官网下载地址https://www.elastic.co/cn/downloads/elasticsearchimage.png解压elasticsearch-8.2.3-windows-x86_64image.png修改配置elasticsearch-8.2.3\config\elasticsearch.yml#========================ElasticsearchConfiguration=========================##NOTE:Elasticsearchcomeswithreasonabledefaultsformostsetting
文章目录一、教学讲解视频二、前言三、准备工作四、CASServer服务端搭建五、CASClient客户端搭建六、结尾一、教学讲解视频教学讲解视频地址:视频地址二、前言因为CAS支持HTTP请求访问,而我们是快速入门上手视频,所以这期教程就不教大家如何配置HTTPS了,如果需要使用HTTPS,可以参考其他博客去云服务器申请证书或者使用JDK自行生成一个证书。三、准备工作下载CASServer(直接下载压缩包就可以)这里我们用的是5.3版本的服务端,5.3之前的服务端都是maven项目,大于5.3的服务端就是gradle项目下载链接四、CASServer服务端搭建1.解压我们前面下载好的压缩包。2
SpringCloud大型系列课程正在制作中,欢迎大家关注与提意见。程序员每天的CV与板砖,也要知其所以然,本系列课程可以帮助初学者学习SpringBooot项目开发与SpringCloud微服务系列项目开发1项目准备SpringBoot整合RabbitMQ消息队列【SpringBoot系列11】本文章基于这个项目来开发本文章是系列文章,每节文章都有对应的代码,每节的源码都是在上一节的基础上配置而来,对应的视频讲解课程正在火速录制中。订单系统,用户下单,即要保存即时性,也要保证流畅性,同时还要防止超卖,本文章是基于RabbitMQ消息队列+Redis实现的下单,当然后续还会的秒杀系统设计以及后