自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot集成JWT+Redis实现单点登录和同一账号只允许在一处登录

功能简述:JWT+Redis实现单点登录功能的同时,也实现同一个账号只能在一台设备上登录,实现方式并非是建立长连接,因为长连接是比较消耗系统性能的。这里只是简单的redis方式实现。什么是单点登录?单点登录的英文名叫做:Single Sign On(简称SSO)。在最开始的单体架构(或者说单系统)当中,所有的代码都放在一个项目当中,传统的登录流程是用户登录—>登录校验(校验用户名密码)—>将用户名等信息放入session当中—>成功登录。这样就可以从session当中获取用.

2021-12-21 00:31:59 10720 9

原创 一文读懂ElasticSearch中字符串keyword和text类型区别

也就是查询条件(广东深圳)会被分词为“广” ,“东”,“深”,“圳”和原始数据“广东深圳”去查询,前面说了,字符串默认是既有text类型,又有keyword类型,没有加keyword,查询的就是text类型的,所以命中了两条数据。但是加了keyword,ES只会去检索keyword类型里存储的数据,不加keyword,ES只会去检索text类型里存储的数据。不出意料,一条也没有命中,原因是term不会分词,不加keyword,ES只会去检索text类型里面的数据,自然匹配不到。

2023-09-13 01:03:43 1985

原创 多线程使用场景

工作当中多线程的使用场景总结

2022-09-15 10:16:49 7353 1

原创 Optional的使用

为什么使用?使用它是为了避免代码中的 if (obj != null) { } 这样范式的代码,可以采用链式编程的风格介绍构造函数:Optional.of(obj): 它要求传入的 obj 不能是 null 值的, 否则直接报 NullPointerException异常。Optional.ofNullable(obj): 它以一种智能的, 宽容的方式来构造一个 Optional 实例. 来者不拒, 传null 进到就得到 Optional.empty(), 非 null 就调用 O.

2022-04-15 16:45:34 2335

原创 springboot相比spring的优势

什么是Spring Boot  Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。  优势:遵循"习惯优于配置"原则,springboot只需要很少的配置可以完全不使用xml文件配置,只使用自动配置和JAVA Config即可内嵌的Tomcat服务器,不需要额外配置服务器提供的starters 简化构建配置,减少了依赖冲突的问题项目可以快速构建,另外还可以更加简单的配置整合第三方框架...

2022-03-12 16:22:23 3217

原创 Spring事务(通俗易懂)

本文主要介绍Spring的实现方式、隔离级别、传播机制以及事务何时失效。1.事务的实现方式spring事务的实现方式有两种,编程式事务和声明式事务,编程式事务要手动管理事务,实际开发当中基本不会使用。本文主要重点介绍声明式事务,声明式事务管理有三种实现方式:基于TransactionProxyFactoryBean的方式、基于AspectJ的XML方式、基于注解的方式。下面主要介绍常用的两种基于AspectJ的XML方式在spring核心配置文件中添加事务管理器的配置、事务的增强以及切面 &l.

2022-02-04 22:13:30 1023

原创 Java后端实际开发规范

本文主要介绍Java后端在实际开发当中的一些规范,主要介绍如下几点规范当然,那些命名规范,注释规范等,我这里就不在一一阐述了,因为那是最基本的规范规范1:数据库—表的设计要有增量字段比如user 用户表规范2:参数传递不要使用Map、JSONObject或者实体类,使用DTO传递反例:正例:使用Map或者JSONObject传递,后面维护的人员不知道传递的参数是什么,还要一一和前端核实,非常麻烦;实体类是用来封装数据的,而不是用来传递数据的,不能将它们两个混着使用,代码会.

2021-12-21 15:08:45 1192

原创 RedisUtil工具类的使用.

引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>RedisUtil:package com.utils;import org.spri

2021-12-20 21:29:08 1351

原创 JVM介绍(通俗易懂)

了解JVM之前,先了解一下JVM的主要组成部分和其各自的作用JVM主要包括两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地库接口)。那么它们的作用分别是什么呢?java文件经过javac编译成字节码文件,字节码文件经过Class loader(类装载)加载到内存当中,将其放在Runtime data area(运行时数据区),而字节码只

2021-12-19 23:30:38 2107

空空如也

空空如也

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

TA关注的人

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