自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring cloud gateway源码分析,一个请求进来的默认处理流程

spring cloud gateway源码分析,请求的处理过程,断言的处理过程,Filters的作用和实现代码

2023-12-01 18:09:14 556

原创 Tomcat处理请求的线程模型

一、前言JAVA后端项目,运行在容器tomcat中,由于现在springboot的内置tomcat容器,其默认配置屏蔽了很多对tomcat的认知,但是对tomcat的学习和认识是比较重要的,所以专门查资料加深了理解,本文主要讨论在springboot集成下的tomcat9的请求过程,线程模型为NIO。二、tomcat结构找了张结构图,每个模块的意思和作用就不详解了,可以搜其他文章三、探讨tomcat是如何处理请求自己画了一个connector的结构1、初始化在springboot启动后,o

2022-03-23 18:14:46 876

原创 深入理解mybatis的实现细节

目录1、mybatis的一级缓存和二级缓存实现细节1、一级缓存和二级缓存配置后怎么体现在代码里的?2、mybatis的一级缓存和二级缓存怎么实现缓存的?首先要知道,Mybatis中有一级缓存和二级缓存.一级缓存是默认开启的,而且是不能关闭的,一级缓存是指SqlSession级别的缓存。 在同一个SqlSession中,相同的SQL语句,第一次查询会走数据库并将结果缓存,以后相同的查询直接从缓存中拿结果。二级缓存是mapper级别的缓存,可以在不同sqlSession中共享,mapper以命名空间为单位

2021-10-18 10:54:40 173

原创 spring cache 源码分析,看看@cachable @CachePut @CacheEvict的实现方式

这里写自定义目录标题1、结论2、三种缓存注解的意思3、看代码4、小结注:禁止转载,谢谢!1、结论话不多说,先放几个结论:1、使用cache,默认存储在JVM内存中,重启service服务缓存丢失2、如果集成了redis,需要配置cacheManager,使用redis存储,重启service服务缓存不丢失3、原理:基于代理模式,在代理方法中,执行对应方法前先会判断是否添加了@cacheable,如果没有,则直接调用方法返回结果。如果有,则会执行到缓存拦截链(CacheInterceptor),进

2021-10-13 17:47:48 985 1

原创 seata+nacos+springboot2.x整合解决分布式事务一致性问题方案

1.nacos下载安装nacos下载:nacos下载安装启动文档:安装启动文档启动 linux::sh startup.sh -m standalonewindow: startup.bat -m standalone打开浏览器 localhost:8848/nacos/index.html账号密码: nacos nacos2.下载seata1.4并安装启动seata下载:下载地址解压修改 conf/registry.conf 配置,注意seata不同版本配置名称不一样,尽量与我版本

2021-03-03 14:27:45 1562 2

原创 spring IOC容器初始化过程解析,看这篇吧,能看懂!

以spring比较新的5.02版本为例,以xml配置的方式来看IOC容器的启动–创建容器–解析xml–向容器注册bean–实例化bean的过程总过程: 创建ApplicationContext容器启动刷新方法 ApplicationContext context = new ClassPathXmlApplicationContext("beanLife.xml"); public ClassPathXmlApplicationContext(String[] configLocations, bo

2021-01-14 13:45:13 522 1

原创 springboot+shiro实现用户登录认证和权限管理(三)

用户添加和用户登录添加用户时,随机生成盐值package com.zzx.customer.controller;import com.alibaba.fastjson.JSONObject;import com.zzx.customer.service.UserService;import com.zzx.customer.util.CommonUtil;import org.apache.shiro.authz.annotation.Logical;import org.apache.s

2021-01-06 11:29:55 552 2

原创 springboot+shiro实现用户登录认证和权限管理(二)

搭建springboot项目为了密码的安全性,在一般的md5基础上引入加盐加密,在添加用户时随机生成盐值,存到数据库。引入shiro配置:注意要引入加盐加密,所以要自己实现HashedCredentialsMatcher接口,再重写方法doCredentialsMatchpackage com.zzx.customer.config.shiro;import org.apache.shiro.authc.credential.HashedCredentialsMatcher;import or

2021-01-06 11:21:56 522 6

原创 springboot+shiro实现用户登录认证和权限管理(一)

数据库设计主要4张表,其中:用户表sys_user:可以被指定角色,(注意:还可以设计为5张表,在用户和角色加中间表,多对多关系,用户可以被指定多个角色,请自行扩展)角色表sys_role:角色表与用户表和权限表进行关联权限表sys_permission:执行用户权限,可以做到接口级别,只有指定权限的人才能调用接口角色权限中间表sys_role_permission:角色和权限多对多关系建表sql:DROP TABLE IF EXISTS `article`;CREATE TABLE `a

2021-01-05 18:01:46 708

原创 scala用Akka实现一对一聊天功能

scala用Akka实现一对一聊天功能1.基础知识2.代码说明1.基础知识最近在学习scala,学习到Akka,这是一个scala用来编写并发程序的框架,可以轻松的写出并发程序而不用过多考虑线程,锁,资源竞争等细节。Akka处理并发的方法基于Actor模型actor与actor之间通信,是通过向对方的mailBox发送消息来实现的。消息的发送,转发,路由,接收处理是由框架给我们完成的,只需要简单的代码就可以实现功能2.代码说明本来是可以直接写一个简单的1对1聊天,只需要写2个客户端,相互持

2020-10-30 12:06:20 434 1

原创 java 多线程join方法深入理解

结论:Join线程会阻塞主线程,等到Join线程执行完毕后,主线程才恢复;但是会与其他线程并行执行。举例:public class ThreadDemo { public static void main(String[] args) { Account account = new Account(); Thread thread = new Thread(account); try { for (int i = 0; i

2020-09-18 15:00:51 118

原创 String,Stringbuilder,Stringbuffer的区别,进来看看源码怎么说的

String,Stringbuilder,Stringbuffer的区别?– 如果你答string维护的是字符串常量,Stringbuilder,Stringbuffer适合频繁修改字符串的情况,且Stringbuffer线程安全。这么回答也OK,但是再问你一句为什么?? 怕是就懵逼了,网上搜的答案呀, 也没细品过为什么啊!为什么要问我为什么!我知道你们懒,这么帮你查一下源码看看为什么。1...

2020-03-11 18:10:04 137

原创 JAVA8的JVM虚拟机,看这一篇就够了

有次准备公司分享会,梳理了java8的JVM相关知识,深浅适中。涉及JVM的结构作用,堆的结构组成,以及JVM分析方法和性能优化。1.JVM体系结构概述JVM的位置 首先JAVA是一门跨平台的语言,这跟他的虚拟机有关。 JVM是运行在操作系统之上的,它与硬件没有直接的交互JVM体系结构概览 JVM的结构包含类加载器,运行时数据区,执行引擎和本地方法接口。1.类加载器: 负责...

2020-03-06 15:51:35 6130 2

转载 JAVA中int和Integer比较的坑

这篇,一看明白了很多。https://blog.csdn.net/xingkongdeasi/article/details/79618421

2019-12-25 14:48:50 431

转载 spring.jpa.hibernate.ddl-auto的配置

spring.jpa.hibernate.ddl-auto 可以显式设置 spring.jpa.hibernate.ddl-auto ,标准的Hibernate属性值有 none , validate , update , create , create-drop。Spring Boot 会根据数据库是否是内嵌类型,选择一个默认值。具体的关系见下图:内嵌类型数据库名称默认值...

2019-11-25 10:51:11 5334 1

原创 linux定时任务crontab使用方法

linux定时任务crontab1.写可执行shell脚本2.配置crontab3.crontab的命令4.crontab的服务状态介绍性的话就不多说了,使用的crontab是一个linux自带的定时任务功能,直接开始步骤。1.写可执行shell脚本写一个.sh格式的文件,比如test.sh: touch test.sh书写脚本内容:举例:#!/bin/bashecho "你好"...

2019-11-18 12:24:30 395

原创 使用apache的HSSFWorkbook类将数据导入到excel文件

1、步骤:创建HSSFWorkbook类,然后创建HSSFSheet表单类,再创建HSSFRow行和HSSFCell列2、示例://参数解释:dataList 需要导出的数据类;colMapping 定义的列明,下面有示例;wb HSSFWorkbook 工具类;sheetName 表单名称public void writeDataToHSSFWorkbook(List<T>...

2019-04-09 15:31:43 937 1

转载 Spring/Spring常用注解及解释汇总----转载

一、开发常用@Component:是一个泛化的概念,标注让spring容器来识别和管理组件 ,可以作用在任何层次。@Bean:类似于XML中的,标注一个类,去交给spring容器管理。@Constroller:通常作用在控制层,但是目前该功能与 @Component 相同。@RestController:包含@Controller和@ResponseBody功能,方法可以直接返回数据而不是...

2018-11-09 14:57:21 207

原创 IDEA中编写spring配置文件命名空间无法自动导入问题----------最简单实用的方法

快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + ...

2018-09-09 12:21:18 8528 3

原创 java开发遇到的多种表达式语言EL、spEL、OGNL、thremleaf...汇总

在学习Java的过程中,接触到多种表达式语言,为了避免使用混淆,将其一一记录下来。一、EL语言1)概述;EL是JSP内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。EL表达式用于代替JSP表达式(&amp;lt;%= %&amp;gt;)在页面中做输出操作。EL表达式仅仅用来读取数据,而不...

2018-09-09 11:49:52 5974 2

空空如也

空空如也

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

TA关注的人

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