自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 AMQP-RabbitMQ

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。AMQP协议是一个二进制协议,拥有一些现代特点:多信道、协商式、异步、安全、跨平台、中立、高效。模型层定义了一套命令(按功能分类),客户端应用可以利用这些命令来实现它的业务功能。保证遵从A

2024-06-03 10:42:35 666

原创 7-Springboot activeMQ

MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。支持多种语言编写客户端对spring的支持,很容易和spring整合支持多种传输协议:TCP, SSL ,NIO ,UDP 等支持AJAX。

2024-06-03 10:38:06 404

原创 4-Quartz与Spring Boot的集成

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。负责执行相关任务触发器Trigger负责指定相关Job的执行时间,执行间隔,运行次数负责将将指定的触发器应用到指定的任务中

2024-06-03 10:27:17 630

原创 3-SpringBoot简单定时任务

在Spring中,你可以通过配置来自定义Scheduled注解使用的线程池。以下是如何配置自定义线程池的步骤和示例代码:创建一个配置类,使用@Configuration注解标注它,并使用@EnableScheduling开启调度功能。创建一个线程池的Bean,使用ThreadPoolTaskScheduler。

2024-06-03 10:24:37 416

原创 2-springboot配置与案例

为入口通过springboot autoconfigure 包进行配置。所以配置的内容可以直接在包中找到.springboot 通过。

2024-06-03 10:23:31 186

原创 1-创建spring boot项目

访问JetBrains下载IEDA,安装即可。

2024-06-03 10:21:23 223

原创 比较json

json 判断是否相等

2022-09-05 17:09:03 827 1

转载 WebSocket

WebSocket实现即时通讯(全双工)的传统方案主要有 轮询 , 长轮询 , applet和Flash轮询客户端在固定的时间间隔下不停的向服务端发送请求,查看服务器是否有新的数据,若服务段有新的数据则返回给客户端,若没有数据则返回一个空文档,但是弊端特别明显,需要消耗极大的资源,服务器需要处理很多无效的HTTP请求长轮询在长轮询中浏览器向服务器发送请求后,服务器在没有要返回的数据时不进行返回,而是持有连接等到有数据返回的时候才进行返回,这种方式在一定程度上可以减少网络资源与服务器资源,

2021-07-05 12:08:03 188

原创 springboot 多数据源

目录数据库准备JDBCTemplate 多数据源配置项目依赖和 JDBCTemplate 相同编写配置文件测试mybatis多数据源编写配置文件使用Spring Data JPA 多数据源编写配置文件使用多数据源一般是由mycat等中间件实现比较好,拥有读写分离,分库分表,备份等功能,但是在spring 中也可以配置多数据源数据库准备创建两个数据库 ,其中都有book表JDBCTemplate 多数据源配置JDBCTemplate 多数据源配置

2021-06-24 11:58:07 488

原创 Shiro Freemaker页面模板控制

Shiro页面控制例如在页面上登录后就会显示退出,不登录会显示登录,权限低的不能看到权限高的选项等FreeMaker模板引擎引入freemaker模板引擎引入freemaker的依赖包<!-- 引入freeMarker的依赖包. --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarke

2020-12-17 18:50:08 156 1

原创 Shiro角色和权限验证

需要开启Shiro注解先前已经配置过了//开启Shrio注解 @Bean public AuthorizationAttributeSourceAdvisor getAuthorizationAttributeSourceAdvisor(UserRealm userRealm){ AuthorizationAttributeSourceAdvisor aasa = new AuthorizationAttributeSourceAdvisor(); aas

2020-12-17 18:47:31 277

原创 Shiro获取用户登录信息

主要使用 SecurityUtils.getSubject(); 获取在通过Subject 的一些方法下面是一些主要的方法 @RequestMapping("/index") public String index(){ Subject subject = SecurityUtils.getSubject(); //再认证的时候Principal 可以是用户对象 ,不单单只是username 是用什么认证就转化为什么对象 String us

2020-12-17 18:46:48 1081

原创 Shiro一处登录与退出

Shiro一处登录与退出退出 @RequestMapping("/loginout") public String loginOut(){ Subject sub = SecurityUtils.getSubject(); sub.logout(); return "userlogin "; } 一处登录一处登录指的是用户只能在一台设备上登录,如果在另一台设备登录 则需要处理(先前用户退出)实现方法.在认证之前看一下ses

2020-12-17 18:46:09 379 1

原创 Shiro编写身份认证 简单版

Shiro编写身份认证 简单版Controller 中的登录接口login @RequestMapping("/login") public String login(String userName,String userPassword){ if("".equals(userName)|| userName==null) return "未填写用户名"; if("".equals(userPassword)|| userPassword==null) r

2020-12-17 18:45:09 83

原创 Shiro-SpringBoot搭建

ShiroSpring搭建引入maven依赖pom引入<!--Shiro--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.5.2</version> &lt

2020-12-17 18:44:18 138 1

原创 Shiro实现原理

Shiro实现原理应用代码通过 Subject 来进行认证和授权,而 Subject 又委托给 SecurityManager; 我们需要给 Shiro 的 SecurityManager 注入 Realm,从而让 SecurityManager 能得到合法的用户及其权限进行判断。

2020-12-17 18:41:14 238

原创 Shiro介绍

Shiro介绍安全是企业应用中不可缺少的功能,在众多权限框架中,Shiro(其前身是JSecurity)因其简单而又不失强大的特点引起了不少开发者的注 意。随着Grails的关注度越来越高,在Grails社区也出现了Shiro的插件。Shiro最早的名字是JSecurity,后来更名为Shiro并成为Apache的孵化项目。这次改名也同样影响了Grails Shiro Plugin。它最早在Shiro还未改名之前就已经存在了,后来因为Shiro的名字变更,也就一道跟着“改名换姓”。由于Grails S

2020-12-17 18:39:14 250

原创 11-缓存穿透缓存击穿缓存雪崩

Redis缓存穿透缓存击穿缓存雪崩缓存穿透1、概念缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。这里需要注意和缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请

2020-12-16 16:43:56 69 1

原创 12-Reids主从复制

Reids主从复制概述redis 的复制功能是支持多个数据库之间的同步.一类是主数据库master ,一类是从数据库slave.主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库.从数据库一般是只读的,并接受主数据库同步过来的数据,一个主数据库可以有多个 从数据库,但是一个从数据库只能有一个主数据库.通过主从复制可以很好的实现读写分离,提高服务器负载能力.主数据库主要进行写操作,读操作一般在从数据库中进行主从复制过程当一个从数据库中启动的时候,会向主数据库发送

2020-12-16 16:43:45 63

原创 13-Redis哨兵模式

Redis哨兵模式概念哨兵模式是redis高可用的实现方式之一使用一个或者多个哨兵(Sentinel)实例组成的系统,对redis节点进行监控,在主节点出现故障的情况下,能将从节点中的一个升级为主节点,进行故障转移,保证系统的可用性。哨兵们是怎么感知整个系统中的所有节点(主节点/从节点/哨兵节点)的首先主节点的信息是配置在哨兵(Sentinel)的配置文件中哨兵节点会和配置的主节点建立起两条连接命令连接和订阅连接哨兵会通过命令连接每10s发送一次INFO命令,通过INFO命令,主

2020-12-16 16:43:21 260 1

原创 14-RedisCluster

Redis Cluster 集群简介为了提供高可用高并发的水平拓展,就必须采用集群。一组Redis Cluster是由多个Redis实例组成,官方推荐我们使用6实例,其中3个为主节点,3个为从结点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从结点成为新的主节点,继续对外服务,从而保证服务的高可用性。Redis Cluster 把所有的数据划分为16384个不同的槽位,可以根据机器的性能把不同的槽位分配给不同的Redis实例,对于Redis实例来说,他们只会存储部门的Red

2020-12-16 16:42:40 207 1

原创 10-Redis持久化

Redis持久化数据存放于内存中,使用会非常高效,但是断电数据就会丢失,且内存相比硬盘总是很小的数据存放于硬盘中,使用时速度慢与内存,但是硬盘存储数据量大,且断电不会丢失redis的两种持久化模式RDB模式 (Redis默认的持久化模式)(整体快照)RDB相当于快照,保存的是一种状态.这种方式就是将内存中的数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb优点: 保存数据极快,还原数据极快优点: 适用于灾难备份,保存关键的数据缺点: 小内存的机器

2020-12-15 13:38:24 61

原创 Redis 数据淘汰策略

Redis 数据淘汰策略Redis的内存淘汰策略 Redis的内存淘汰策略是指在Redis的用于缓存的内存不足时,怎么处理需要新写入且需要申请额外空间的数据。maxmemory-policy noeviction [默认值noeviction]noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个ke

2020-12-15 13:37:50 137 1

原创 Redis 事务

Redis 事务Redis事务命令DISCARD取消事务,放弃执行事务块中的所有事务EXEC执行所有事务块内的命令MULTI标记一个事务块的开始WATCH key [key]监视一个(或者多个)key , 如果在事务执行之前这个key被其他命令所改动,那么事务将被打断.UNWATCH取消WATCH 命令对所有的key的监视.Redis事务概念可以一次执行多个命令,中途不被其他命令插入 ,能一次性,顺序性,排他性的执行一系列的命令.

2020-12-15 13:36:53 76 1

原创 7-Redis中的数据类型及应用

Redis中的数据类型和应用

2020-12-15 13:36:16 68 1

原创 6-RedisKey 命名规范

key不要太长。在redis中可以的最大容量是512M,但是实际中key超过1024byte就非良好 的设计方式了。key值太大不仅浪费内存空间,更是在请求中对于key’的查找需要更多的时间 进行比较;key值不宜太短。这个原则貌似与第一条相冲突,实则不然。有时key的变长使得增加空间 相对于使得key更具可读性更显次要;key的命名中可以使用冒号和破折号加以细分(通用规范使用冒号),使key更具可读性,灵活性。例如: aticle:1000:tags。其中第一位表示类型,第二位表示该类型对..

2020-12-15 13:35:09 1569 1

原创 Redis常用命令

Redis常用命令

2020-12-15 13:34:30 106 1

原创 Redis配置文件详解

Redis配置文件详解在windows下配置文件 名称为redis.windows.conf在Linux下配置文件名称为redis.conf配置文件默认放在服务端的同级目录下 安装时组要赋值文件到该目录redis 配置文件主要配置Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize yes [守护进程运行]当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过

2020-12-15 13:25:38 504 1

原创 Redis 安装

Redis 安装Window 下安装**下载地址:**https://github.com/MSOpenTech/redis/releases。Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。打开文件夹,内容如下:打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:redis-server.exe redis.windows.conf

2020-12-15 13:24:08 94 1

原创 Redis 简介

Redis 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。Redis 优势性能极高 – Redis

2020-12-15 13:19:23 65 1

原创 5-SpringBoot单元测试

当用户创建一个spring boot 项目时会默认创建测试类 ,并且所有springboot 项目都添加了依赖@RunWith() SpringRunner 是spring framework 中 SpringJUnit4ClassRunne 的别名。

2020-12-06 21:58:39 364 1

原创 springboot 请求参数解析与规范化

JSR-303 与spring mvc 参数校验

2020-12-06 21:52:15 596 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除