自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 三. idea + SpringBoot 热部署

在搭建SpringBoot项目时,可能会引入微服务,通常是,父项目容器中创建指定的微服务项目,开启热部署步骤在父项目容器pom文件中添加热部署插件 <!--热部署插件--> <build> <!--当前父工程名字--> <finalName>SpringCloud</finalName> ...

2020-04-27 23:55:55 139

原创 SpringBoot 整合 Shiro 常见配置

ShiroShiro 是 apache 下的权限安全框架,通过该框架可以完成安全认证,例如登入,权限认证等,并且增加了加密认证,并发执行,缓存设计等过滤器+AOP实现安全认证权限管理逻辑提供用户表,存储代表当前用户的数据例如用户名,密码等提供权限表,存储权限码提供角色表,一个角色可以持有一个或多个不同权限用户表添加角色字段,存储当前用户的角色安全认证: 用户登录时将用户信息存储到S...

2020-04-27 05:09:08 1954 2

原创 解释器模式

解释器模式解释器模式概述解释器模式概述什么是解释器: 定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子,简单来说,就是为了解释一种语言,为这个语言创建的解释器,例如java语言,C语言,各种语言都有对应的编译器进行编译,这个编译器就相当于解释器...

2020-04-23 21:07:49 81

原创 MyBatis 搭建及源码分析

目录一. Mybatis 简单示例1. 搭建mybatis步骤总结2. 代码示例二. 源码分析1. SqlSessionFactoryBean 初始化 SqlSessionFactory解析对应数据库表的mapper.xml解析Mapper.xml中的每一条sql语句2. 获取SqlSession3. 执行sql的流程MapperProxy 代理类的 invoke() 方法封装sql方法的 Map...

2020-04-23 21:04:34 710 2

原创 MySQL索引与EXPLAIN查看执行计划与慢查询的开启

一. MySQL 索引概述假设执行一条查询语句,在没有索引的情况下默认会通过全表搜秒,将获取到的数据与查询语句中的查询条件进行判断,假设表中的数据时百万级,效率会非常慢,所以创建索引,通过索引查询可以简单理解为为了提高查询效率,给添加一个或多个索引,创建一个像目录一样的索引文件,是存在硬盘上的mysql 索引数据结构支持 :hash, 平衡二叉树, b树, b+树等,通常采用b+树实现L...

2020-04-23 20:46:50 554

原创 dubbo 负载策略,容错策略等常见问题

目录一. dubbo 概述dubbo中的角色分析:dubbo 以 Zookeeper作为注册中心时的执行流程dubbo 负载均衡策略xml 方式配置负载均衡策略SpringBoot yml 文件配置 dubbo 负载配置示例dubbo 容错xml 方式配置容错重试注解方式配置容错重试二. SpringBoot 整合 dubbo 的yml配置服务提供方服务消费方yml一. dubbo 概述一款...

2020-04-23 20:31:29 884

原创 redis 基础概述与使用

目录一. redis 概述redis 主从同步执行流程redis 淘汰策略SpringBoot 整合 redisStringRedisTemplate 与 RedisTemplateredis 支持事物控制与锁redis 设置key失效redis 指定库redis 的 setnx() 与 getset()封装操作 redis 数据的工具类二. java 操作 redis 各种类型数据示例一....

2020-04-20 15:47:26 187 1

原创 ZooKeeper 分布式协调工具

一. Zookeeper 概述什么是Zookeeper: 分布式协调工具,(java语言编写的开源框架)Zookeeper的使用场景:注册中心(命名服务,将服务以持久节点.临时节点存入Zookeeper中),基于Zookeeper 实现负载均衡基于Zookeeper 实现分布式锁Zookeeper实现分布式配置中心,动态的管理配置文件(Apollo配置中心,SpringClou...

2020-04-18 16:00:12 198

原创 Callable与Future模式

目录使用示例Future 原理先解释使用场景: 在多线程时,使用继承Thread类,或实现Runnable接口创建线程类,重写run()方法,方法中调用需要多线程处理的代码,执行时调用start() 方法,但是会发现一个问题,run()方法没有返回值,假设逻辑代码执行完毕后需要返回值怎么办通过实现 Callable 接口创建线程类,Callable接口中的泛型就是返回值类型,重写接口中的ca...

2020-04-16 00:33:05 287

原创 队列基础使用示例与通过队列实现线程通信

目录一. 队列阻塞队列与非阻塞队列的区别:1. ConcurrentLinkedDeque并发非阻塞式队列2. BlockingQueue阻塞队列ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueue3. 通过队列实现线程通讯二. 线程池线程池的分类:线程池原理分析Executors 创建线程池自定义线程...

2020-04-15 16:54:02 373

原创 线程通信基础示例(synchronized 与 Lock + Condition实现线程通信)

目录总结使用 wait() 与 notify() 实现线程通讯的原理线程通讯示例使用 Condition 设置线程通讯总结什么是线程通讯,可以将线程分为生产者线程与消费者线程,生产者线程创建共享数据(写),给消费者线程使用(读),注意是生产一个消费一个wait() 方法: 当调用该方法时当前线程进入等待,并释放锁notify() 方法: 当调用该方法时,唤醒当前对象锁池中等待的线程, 注...

2020-04-15 00:26:01 218

原创 SpringMVC 配置及原理分析

目录一. 搭建 SpringMVC传统方式配置类方式(注意servlet 3.0及以上版本)SpringMVC 接收请求执行流程1. 源码分析2. 步骤总结二. 异步请求三. 请求转发与重定向一. 搭建 SpringMVC1.使用 SpringMVC 需要引入依赖 <dependency> <groupId>org.springframewo...

2020-04-10 12:57:21 302

原创 Spring refresh() 方法详解(启动Spring,bean的创建过程)

Spring refresh方法详解一. refresh() 方法预览二. refresh() 方法中调用的每个方法1. this.prepareRefresh() 激活开启容器2. this.obtainFreshBeanFactory() 获取 bean 工厂3. this.prepareBeanFactory(beanFactory) 对获取到的 beanFactory 做预处理设置4. t...

2020-04-09 13:04:14 6642 2

原创 Spring 事件驱动模型开发

事件驱动模型开发一. 监听器与事件与发布事件概述二. 通过 Spring 提供的容器刷新事件查看原理发布事件的原理IOC 容器注册多播器IOC 容器注册监听器三. 自定义事件驱动模型开发@EventListener 设置监听方法注解四. 了解 SmartInitializingSingletonSmartInitializingSingleton 使用示例一. 监听器与事件与发布事件概述事件...

2020-04-08 21:47:45 391

原创 Spring 源码扩展 BeanFactoryPostProcessor 与 BeanDefinitionRegistryPostProcessor 后置处理器

目录一. BeanFactoryPostProcessor1. 解释与使用示例2. 运行原理二. BeanDefinitionRegistryPostProcessor1. 解释与使用示例2. 执行原理一. BeanFactoryPostProcessor1. 解释与使用示例BeanFactoryPostProcessor 是一个接口,该接口中有一个 postProcessBeanFacto...

2020-04-08 14:19:01 227

原创 Spring 事物与底层原理

事物 一. 事物的解释,及使用案例实现事物设置的步骤二. 根据 @EnableTransactionManagement 开启事物注解,了解事物的实现原理使用该注解注入向容器中注入组件一. 事物的解释,及使用案例解释: 假设同一方法中对数据库执行增删改操作,在操作数据库完毕的后续代码中发生了异常,在实际情况中按照业务逻辑由于抛出异常,此次操作是不应该对数据库有任何影响的,要对抛出异常前对数据库...

2020-04-08 03:04:09 711 1

原创 Spring AOP 的搭建与源码分析

AOP 面向切面编程一. AOP 概述AOP 的实现步骤示例一. AOP 概述什么是 AOP : 指定程序在运行期间动态的将某段代码功能切入到指定的位置运行,底层是通过动态代理来实现的AOP 优点 : 降低代码的耦合,提高代码复用性,提高系统的扩展性AOP 常见使用场景 : 例如日志记录, 性能统计, 权限控制, 事物处理等AOP 的实现步骤Spring 引入 AOP 需要的依赖设...

2020-04-06 17:57:27 798

原创 Spring 的属性赋值与装配

赋值一. 属性赋值@Value() 注解赋值@PropertySource 注解导入配置文件到项目中二. 自动装配@Autowired@Primary 设置装配优先级@Resource 与 @Inject 实现装配功能自动装配注解实现原理自定义组件实现 Spring 中底层提供的组件一. 属性赋值传统 xml 方式赋值,通过 property 标签, name为属性名, value为属性值...

2020-04-05 13:02:25 375

原创 Spring Bean 的注入方式

DI 注入方式一. 传统的注入方式通过bean标签方式注入通过包扫描的方式注入二. 注解方式配置注入@Configuration 与 @Bean 注解方式注入@ComponentScan 包扫描方式注入@Import 注入Spring 的 FactoryBean 方式注入三. 获取容器中的实例scopt 单例与多例取值,与创建实例的时间针对单例四. 根据条件向容器中注入实例五. 总结一. 传统的...

2020-04-04 13:49:16 2866

原创 职责链模式

职责链模式职责链模式概述职责链模式解决的问题角色分析职责链模式优点代码示例源码中的职责链模式使用案例职责链模式概述职责链模式解决的问题案例 : 一个贷款审批案例,假设贷款额度小于5万时由客户负责人审核放款,当贷款额度大于5万小于10万时由项目经理负责审批,当贷款额度大于10万小于20万时由审核团队来审批问题 : 由谁来审批是通过贷款金额大小来决定的,在传统模式中,通常会使用 if - el...

2020-04-02 14:32:51 109

原创 策略模式

策略模式通过案例了解策略模式策略模式 Strategy 基本介绍策略模式角色分析通过策略模式实现商场售卖策略模式与状态模式的区别JDK 中策略模式的使用案例通过案例了解策略模式**案例: **商场售卖,在正常情况下按照正常价格售卖,在节假日时按照打折促销价格售卖,售卖方式就可以看为是一种策略,正常售卖时使用正常策略,节假日时使用节假日策略,例如618打八折,双十一满减等策略模式 Strate...

2020-04-02 02:23:56 79

原创 状态模式

状态模式状态模式 State 概述基本介绍状态模式角色分析示例案例分析案例(不是太严谨,只关注设计模式)代码状态模式 State 概述基本介绍状态模式主要用来解决对象在多种状态之间转换时,不同状态,行为不同的问题,当一个对象的内在状态发生改变时,该对象的行为也会发送相应的改变,在传统模式下通常使用一个字段来标识一个类的状态,然后通过逻辑代码去判断获取相应的状态,执行相应的操作,假设后续更改...

2020-04-01 23:06:28 224

空空如也

空空如也

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

TA关注的人

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