![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 85
sp_snowflake
学!
展开
-
Java实现二十三种设计模式(六)—— 十一种行为型模式 (下)——观察者模式、状态模式、策略模式、模板方法模式、访问者模式
Java实现二十三种设计模式(六)—— 十一种行为型模式 (下)——观察者模式、状态模式、策略模式、模板方法模式、访问者模式原创 2022-08-23 19:26:31 · 1011 阅读 · 0 评论 -
Java实现二十三种设计模式(五)—— 十一种行为型模式 (中)——解释器模式、迭代器模式、中介者模式、备忘录模式
Java实现二十三种设计模式(五)—— 十一种行为型模式 (中)——解释器模式、迭代器模式、中介者模式、备忘录模式原创 2022-08-23 09:45:42 · 576 阅读 · 0 评论 -
Java实现二十三种设计模式(四)—— 十一种行为型模式 (上)——责任链模式、命令模式
Java实现二十三种设计模式(四)—— 十一种行为型模式 (上)——责任链模式、命令模式原创 2022-08-23 09:13:05 · 441 阅读 · 0 评论 -
Java实现二十三种设计模式(三)—— 七种结构型模式 (下)——装饰模式、外观模式、享元模式、代理模式
Java实现二十三种设计模式(二)—— 七种结构型模式 (下)——装饰模式、外观模式、享元模式、代理模式原创 2022-08-23 08:30:33 · 304 阅读 · 1 评论 -
Java实现二十三种设计模式(二)—— 七种结构型模式 (上)——适配器模式、桥接模式、组合模式
Java实现二十三种设计模式(二)—— 七种结构型模式 (上)——适配器模式、桥接模式、组合模式原创 2022-08-23 07:09:39 · 523 阅读 · 0 评论 -
Zookeeper(二)——ZK实现分布式锁(读写锁、羊群效应、curator实现)、zk的watch机制(客户端和 curator )、ZK 集群搭建、ZAB协议(选举和崩溃恢复、主从数据同步)
Zookeeper(二)——ZK实现分布式锁(读写锁、羊群效应、curator实现)、zk的watch机制(客户端和 curator )、ZK 集群搭建、ZAB协议(选举和崩溃恢复、主从数据同步)原创 2022-08-18 17:43:47 · 1005 阅读 · 0 评论 -
Excel的导入与导出——Alibaba EasyExcel(随便记录下笔记)、和配合 ElementUI 的分页功能
Excel的导入与导出——Alibaba EasyExcel(随便记录下笔记)、和配合 ElementUI 的分页功能原创 2022-04-21 20:37:49 · 1512 阅读 · 0 评论 -
Elasticsearch(四)——ES Java API——Http 客户端(简单使用,普通 Http 请求)、低级客户端、高级客户端(索引管理、文档操作(增删改查)、根据条件查询文档)
Elasticsearch(四)——Es Java API——Http 客户端(简单使用,普通 Http 请求)、低级客户端、高级客户端(索引管理、文档操作(增删改查)、根据条件查询文档)原创 2022-04-06 14:47:20 · 6447 阅读 · 0 评论 -
微服务(五)——分布式链路追踪(Sleuth(跟踪原理、实践))、SpringCloudAlibaba(Nacos (注册 / 配置中心))、Sentinel (限流工具(配置文件手动配置流控规则))
微服务(五)——分布式链路追踪(Spring Cloud Sleuth(跟踪原理、实践))、Spring Cloud Alibaba(Spring Cloud Nacos(注册 / 配置中心))、Spring Cloud Sentinel (限流工具(通过配置文件手动配置流控规则))原创 2022-03-28 22:30:17 · 1797 阅读 · 0 评论 -
微服务(四)——Config(搭建服务端和客户端、配置文件加解密、配置中心服务化+动态刷新+请求失败重试)、Bus(优化动态刷新、批量刷新服务)、Stream(简单使用、消息分组、消费分区)
微服务(四)——Config(搭建服务端和客户端、配置文件加解密、配置中心服务化+动态刷新+请求失败重试)、Bus(优化动态刷新、批量刷新服务)、Stream(简单使用、消息分组、消费分区)原创 2022-03-27 01:14:24 · 2839 阅读 · 0 评论 -
微服务(三)服务网关——Zuul(Zuul 代理其他服务、简单的权限校验、其他配置和访问路径的顺序问题)、Gateway(Gateway 中的各种配置、Filter(转发路由时,自动的额外添加参数))
微服务(三)服务网关——Zuul(Zuul 代理其他服务、简单的权限校验、其他配置和访问路径的顺序问题)、Gateway(Gateway 中的各种配置、Filter(转发路由时,自动的额外添加参数))原创 2022-03-23 01:01:17 · 1899 阅读 · 1 评论 -
微服务(二)——OpenFeign、Hystrix 实现服务降级(结合RedisTemplete 、处理异常、继承类中的缓存、请求合并、OpenFeign + Hystrix 服务降级)
微服务(二)——OpenFeign、Hystrix 实现服务降级(结合RedisTemplete 、处理异常、继承类中的缓存、请求合并、OpenFeign + Hystrix 服务降级)原创 2022-03-22 00:45:02 · 2067 阅读 · 0 评论 -
微服务(一)——SpringCloud(体系、简介、简单启用 eureka、eureka集群、eureka工作细节、服务注册与消费、手写负载均衡与简化、RestTemplate 详细用法(增删改查)
微服务(一)——SpringCloud(体系、简介、简单启用 eureka、eureka集群、eureka工作细节、服务注册与消费、简化轮询负载均衡代码、RestTemplate 详细用法(增删改查)原创 2022-03-19 15:43:32 · 2377 阅读 · 6 评论 -
MyCAT——MyCAT(下载和安装、配置 Mycat 相关文件、出错时解决方法、mycat 分片规则【仅列举五种】)、分布式环境下的主键生成(Java 代码处理—— LEAF的两种模式))
MyCAT——MyCAT(下载和安装、配置 Mycat 相关文件、出错时解决方法、mycat 分片规则【仅列举五种】)、分布式环境下的主键生成(Java 代码处理—— LEAF的两种模式))原创 2022-03-17 17:57:44 · 2556 阅读 · 0 评论 -
RabbitMQ(三)——延迟队列的第二种实现方式(插件)、消息发送可靠性(两种思路、开启事务、发送方确认机制)、自带的重试机制(Spring自带、业务重试——入职发送邮件、消费失败重试、幂等性处理)
RabbitMQ(三)——延迟队列的第二种实现方式(插件)、消息发送可靠性(两种思路、开启事务、发送方确认机制)、自带的重试机制(Spring自带、业务重试——发送失败重试、消费失败重试+幂等性处理)...原创 2022-03-10 20:59:59 · 2923 阅读 · 2 评论 -
RabbitMQ(二)——七种消息收发机制(直连、扇形、主题、Hearder交换机)、RPC调用、消息有效期和死信队列(单条消息过期、特殊情况、死信队列、死信队列典型应用)、延迟队列第一种实现方式
RabbitMQ(二)——七种消息收发机制(直连、扇形、主题、Hearder交换机)、RPC调用、消息有效期和死信队列(单条消息过期、特殊情况、死信队列、死信队列典型应用)、延迟队列第一种实现方式原创 2022-03-09 00:28:47 · 1967 阅读 · 0 评论 -
RabbitMQ(一)——引言介绍和架构图、安装、RabbitMQ架构、可视化界面、Java 链接 RabbitMQ
RabbitMQ(一)——引言介绍、安装、RabbitMQ架构、可视化界面、Java 链接 RabbitMQ原创 2022-03-08 00:17:10 · 2379 阅读 · 2 评论 -
Redis(四)——Redis 处理接口幂等性(代码实现、两种方式拦截令牌)、Redis 分布式锁(两种引入 lua 脚本、Redission实现分布式锁)、Redis做限流工具(简单限流,限流插件)
Redis(四)——Redis 处理接口幂等性(代码实现、两种方式拦截令牌)、Redis 分布式锁(两种引入 lua 脚本、通过 Redission 实现分布式锁)、Redis做限流工具(简单限流,限流插件——Redis-Cell模块(使用了漏斗算法)、java 代码操作(使用 Lettuce 扩展))原创 2022-03-07 23:00:30 · 2170 阅读 · 0 评论 -
Redis(三)——事务、快照 / AOF持久化、主从复制(两种方式和哨兵模式)、Redis集群(增加删除节点、分配插槽、创建失败处理方式、Jedis操作集群)、Redis常见问题和布隆过滤器
事务、快照 / AOF持久化、主从复制(两种方式和哨兵模式)、Redis集群(增加删除节点、分配插槽、创建失败处理方式、Jedis操作集群)、Redis常见问题和布隆过滤器原创 2022-03-05 05:41:28 · 688 阅读 · 0 评论 -
Redis(二)——SpringDataRedis、SpringCache + Redis(使用缓存、key的生成器、更新 / 删除缓存、公共配置)、Session共享、nginx(前后端分离部署)
SpringDataRedis、SpringCache + Redis(使用缓存、key的生成器、更新 / 删除缓存、公共配置)、Session共享、nginx(前后端分离部署)原创 2022-03-03 22:51:04 · 3309 阅读 · 0 评论 -
Redis(一)——引言和安装、redis 的启动、后台启动、远程访问、redis的数据类型、Jedis(Jedis的使用、连接池、个人封装的一个工具类)、Lettuce
引言和安装、redis 的启动、后台启动、远程访问、redis的数据类型、Jedis(Jedis的使用、连接池、个人封装的一个工具类)、Lettuce原创 2022-03-02 23:42:27 · 566 阅读 · 0 评论 -
Linux—— Jdk 和 Tomcat 的安装以及部署 Java 中的 SSM 和 SpringBoot 项目
Linux—— Jdk 和 Tomcat 的安装以及部署 Java 中的 SSM 和 SpringBoot 项目原创 2022-03-02 22:33:22 · 482 阅读 · 0 评论 -
SpringBoot(九)——SpringSecurity 响应 json 数据、资源放行问题、登录(自动登录,会话管理、csrf请求攻击和防御)、JWT——有状态登录和无状态登录
SpringSecurity 响应 json 数据、登录(自动登录,会话管理、csrf请求攻击和防御)、JWT——有状态登录和无状态登录原创 2022-03-02 22:09:58 · 1611 阅读 · 0 评论 -
SpringBoot(八)——Java日志体系(日志实现)、整合 Shiro、SpringSecurity(使用、接入 MySQL 数据库、自定义登录表单、密码加密、密码升级)、这两个安全框架的区别
SpringBoot(八)——Java日志体系(日志实现)、整合 Shiro、SpringSecurity(使用、接入 MySQL 数据库、自定义登录表单、密码加密、密码升级)、Shiro 和 Spring Security 的区别原创 2022-02-17 00:54:21 · 755 阅读 · 0 评论 -
SpringBoot(七)——SpringBoot服务中的监控(druid 监控、Admin 监控)、SpringBoot原理(可执行 jar 包、自动化配置—Starter)、整合Swagger2
SpringBoot(七)——SpringBoot服务中的监控(druid 监控、Admin 监控)、SpringBoot原理(可执行 jar 包、自动化配置—Starter)、整合Swagger2原创 2022-02-16 19:54:00 · 3633 阅读 · 0 评论 -
SpringBoot(六)——定时任务(通过注解开启定时任务、cron表达式、Quartz 框架处理定时任务)、邮件发送(文件配置和邮件发送、邮箱模板)
SpringBoot(六)——定时任务(通过注解开启定时任务、cron表达式、Quartz 框架处理定时任务)、邮件发送(文件配置和邮件发送、邮箱模板)原创 2022-02-15 00:31:16 · 752 阅读 · 0 评论 -
Shiro(四)——通过注解实现权限拦截(基于角色和基于权限)、Shiro的Jsp标签、Shiro 缓存
一、通过注解实现权限拦截1、粗粒度和细粒度的权限控制上篇博客中,通过 URL地址进行权限控制,属于粗粒度的权限控制。基于过滤器来实现的基本上都是粗粒度的权限控制。因为一个页面中可能有很多请求,可能 A 方法允许你调用,但是 B 方法就不允许了,但是他们都属于一个页面,那么仅靠之前的 url 来控制就不能实现。如果是基于注解实现的权限控制,可以精确到每一个 service 方法,底层实现的是 AOP。所以细粒度的权限控制一般在 service 层实现。权限保存在数据库中,其实从技术角度来讲,权限也就原创 2022-02-12 12:50:59 · 3880 阅读 · 0 评论 -
Shiro(三)——三种不同的登录方式、RememberMe登录、Shiro 授权、其他配置(配置注销后的跳转页面、处理 JsessionID)
Shiro(三)——一、三种不同的登录方式1、第一种登录方式上一篇博客用的就是第一种登录方式,自己定义登录逻辑,自己定义页面,错误信息等,就是第一种登录方式了。2、第二种登录方式——无状态登录这是一种比较老的登录方式了。登录网站会弹框让你输入账号密码。这种一般就是属于 httpBasic 登录,然后把账号密码放在请求头信息中,传输到服务端解析。这种登录有比较大的弊端:一是不安全,因为信息都放在请求头中了;二是这种登录是无状态登录,没有会话,也就没有 cookie 了,然后就是登录后账号密码原创 2022-02-12 10:57:34 · 1902 阅读 · 0 评论 -
Shiro(二)——shiro 登录流程、整合 SSM + Shiro、Shiro 密码加密(编码方式、密码加盐)、JdbcRealm(采取哪个数据作盐)、自定义访问数据库或字段、多 Realm 配置
Shiro(二)——一、shiro 登录流程1、shiro 登录流程二、整合 SSM + Shiro在 SS SHiro 的基础上导入 mybatis。1、依赖导入所有依赖:2、Spring 配置文件这里是原有配置代码的基础上添加新的进去,而不是只有这个:这里注释,因为这一块可以通过注解去注释:然后 MyRealm 添加注解:然后自己添加一个实体类,写一个查询方法,接着修改 MyRealm:到这里为止,就算整合完成了。三、Shiro 密码加密1、编码方式2、密码原创 2022-01-20 20:36:45 · 1322 阅读 · 0 评论 -
Shiro(一)——简介、Spring + MVC + shiro 整合
Shiro一、Shiro1、Shiro的简介和由来a、简介b、由来2、Shiro 有哪些功能二、Spring + MVC + shiro跟前面一样,可以整合 Spring + MVC + shiro。从 Spring + MVC 开始整合 shiro,Spring + MVC 整合部分就不放出来了。通过使用 shiro 验证登录的例子,来学习怎么使用 shiro。1、依赖导入MVC 配置文件:创建一个 User 实体类:2、前端实现jsp 页面:3、登录逻辑a原创 2022-01-19 19:53:27 · 463 阅读 · 0 评论 -
Mybatis(四)——Mybatis-plus、SSMP(整合 Spring、MVC、Mybatis-plus)
Mybatis(四)——Mybatis-plus一、Mybatis-plus1、Mybatis-Plus介绍2、特性3、引入 mybatis-plus先简单的用 javaSE 导入 mybatis-plus 来使用一下:导入依赖:然后 model 层 和 对应的 mapper 层:接着就是 java 代码引入 mybatis-plus:那么到此为止,就引入了 mybatis-plus。4、开始使用 mybatis-plus首先在 mapper 接口层使用,要使用的类继承原创 2022-01-18 21:39:58 · 685 阅读 · 0 评论 -
Mybatis(三)——一对一映射、动态 SQL(include、if、where、set、trim、foreach、choose标签)、Cache(一级缓存和二级缓存)、SSM整合
Mybatis(三)——一、一对一映射1、一对一映射比如每个班级都对应一个年级:实体类:然后是 mapper 文件:然后测试结果:2、一对一映射(懒加载)二、动态 SQL1、介绍动态 SQLMyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整的SQL之后再执行,以达到SQL复用、简化编程的效果。sql 优化的一个策略是:取什么数据就用什么字段,不要轻易的 select * ,这样会消耗数据库的性能。databaseID :如果不确定用什么数据库,比原创 2022-01-17 22:56:07 · 1039 阅读 · 0 评论 -
Mybaits(二)——查询参数问题(参数绑定、模糊查询、主键回填)、ORM映射(ResultMap结果集、TypeHandler类型转换器)、一对多映射(ResultMap的继承、懒加载)
Mybaits(二)——一、查询参数问题1、前期准备依赖导入:mybatis-config.xml:然后实体类:然后 bookMapper:测试:2、参数绑定a、默认一个参数测试代码:结果:b、注解参数绑定(多个参数的情况下)测试:c、map 参数绑定测试:结果:3、模糊查询a、方式一—— #符号(推荐)模糊查询数据库写法是 x%,这里不仅要处理百分号 % 的问题,还要处理字符传入的问题。通过这种方式,传入数据,然后拼接百分号 %,原创 2022-01-16 23:18:19 · 912 阅读 · 0 评论 -
Spring MVC(四)+ Mybatis(一)——Java 代码配置 Spring + SpringMVC、其他配置以及完善细节(静态资源访问、拦截器、等等)、Mybatis基本使用
Spring MVC(四)一、Java 代码配置 Spring + MVC1、环境准备先是依赖导入:然后就是正常的分层:2、Java 代码配置跟 xml 配置文件差不多,同样需要两个文件分别配置 MVC 和 Spring:a、SpringMVCConfigb、SpringConfig// 这是 Spring 的配置文件,作用相当于 applicationContext.xml@Configuration@ComponentScan(basePackages = "com.qf原创 2022-01-16 23:17:47 · 480 阅读 · 0 评论 -
Spring MVC(三)——拦截器、文件上传(两种方式上传)、文件下载(通用方式和MVC框架自带方式)、跨域问题、Spring 整合 Spring MVC
Spring MVC(三)——一、拦截器1、前期准备2、拦截器的使用方式和注意事项首先使用拦截器先要实现一个接口:HandlerInterceptor然后就是需要实现三个方法:spring-servlet.xml 配置拦截器:结果就不放出来了。二、文件上传文件上传有两种方式,一种是新版的,一种是旧版的。先看新版的1、新版文件上传方式先是 spring-servlet 配置:然后是 web.xml 配置:然后就是 java 代码:SimpleDateFormat原创 2022-01-12 23:29:24 · 745 阅读 · 0 评论 -
Spring MVC(二)—不同的返回值类型、Json处理(jackson、gson、fastjson)、sessionAttributes——把属性存入 session 中、全局异常处理(三种方式)
Spring MVC(二)——一、不同的返回值类型1、返回值为 void2、返回值为 字符串返回值为字符串,主要有三种情况:方法返回值为字符串:重定向 / 服务端跳转逻辑视图名真的字符串当返回的字符串有前缀时,代表不同的功能:1、forward2、redirect总的功能看下图:可以看到这里返回字符串 01 返回的是 名称为 01 的页面,如果就是想要返回字符串 01 呢?可以通过注解 @ResponseBody 来返回:换句话说加了这个注解,你返回什么它就显示什么。原创 2022-01-11 23:09:01 · 806 阅读 · 0 评论 -
Spring MVC(一)介绍、Spring MVC 工作流程 / Spring MVC 原理、使用注解定义接口(接口中的参数、请求转化)
Spring MVC(一)介绍、Spring MVC 工作流程 / Spring MVC 原理、使用注解定义接口(接口中的参数、请求转化)原创 2022-01-10 22:42:10 · 592 阅读 · 0 评论 -
Spring(四)——事务传播性(介绍、例子解释、等级介绍、xml 配置事务传播、Java / xml 配置事务隔离、事务超时属性/只读属性、事务回滚规则、@Transactional 注解使用细节)
Spring(四)——事务传播性(介绍、例子解释、等级介绍、代码实现)一、事务传播性1、事务传播性介绍Spring相应的定义了一个枚举类来方便使用事务传播行为:2、事务传播性例子解释还是用经典的转账例子:以前转账都是在 dao 层写好各自的数据库逻辑,然后 service 层调用 dao 层的两个方法,完成一方减钱另一方加钱的逻辑,事务的话就是把这两个逻辑包裹起来。现在就不用这个方法;在减钱的逻辑里面调用加钱的方法,这么一来只需要调用减钱的逻辑,就自然而然的使用到加钱逻辑,一套方法走下来就原创 2022-01-09 17:21:42 · 790 阅读 · 0 评论 -
Spring(三)——Java代码配置 AOP、JdbcTemplate 简单配置(java代码和xml配置)、加载properties 配置文件、事物隔离级别、Spring 事务(编程式、声明式)
Spring(三)——一、Java 代码配置 AOP1、依赖导入先导入需要的依赖:2、代码实现首先还是接口:然后是实现类:接着就是切面代码:然后是测试代码:运行结果就不贴图了。3、优化切点定义可以看到那五个通知定义切点那里,每一个都要写路径,很麻烦,而 xml 配置那里可以有 ref 引用。Java 代码配置当然也有类似的引用方式:然后后面的通知都引用这个路径:运行结果没毛病。后面一些框架中的特点都是通过 AOP 来实现的,后面遇到的时候再提。二、JdbcTem原创 2022-01-08 00:52:17 · 987 阅读 · 0 评论 -
Spring(二)——条件注解(三种方式)、Spring 包扫描(java配置和xml配置)、代理设计模式(静态和动态(JDK和CGLIB))、AOP(概念、开发术语、五种通知)
Spring(二)——条件注解(三种方式)、Spring 包扫描(java配置和xml配置)、代理设计模式(静态和动态(JDK和CGLIB))、AOP(概念、开发术语、五种通知)原创 2022-01-07 00:19:28 · 2121 阅读 · 0 评论