自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shuixiou1的博客

搬砖的日子

  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 Spring的IOC依赖的处理方式的演示

前言:spring在getBean的时候,能够自动处理加载依赖的bean,即先实例化初始化依赖bean,然后再实例化本bean,这个过程中依赖以及循环依赖的校验是怎么处理的,我们用一个小案例进行演示。1、概述我们自制一个集BeanDefinition注册,bean实例化,依赖校验和依赖关系注册等等一系列功能为一体的BeanFacotry,即把spring继承各种接口的功能基于一体的BeanFaoctry(DefaultListableBeanFactory)。首先这个BeanFactory需要有能够

2021-01-29 21:40:46 241 3

原创 spring源码分析(一) IOC源码分析

spring-ioc源码分析概述:spring是一个ioc容器,ioc就是我们把对象之间的依赖关系交给spring进行管理,比如说,我们在配置文件或者java配置类定义了bean的各种关系,spring负责加载这些bean,并维护了类之间的依赖,如果我们需要使用bean,直接getBean即可,这个就是spring作为Ioc容器的主要功能。一、类介绍1、ApplicationContext的总览为了分析ioc的原理,我们先从可以接触到的applicationContent类进行入手,下面这个

2021-01-28 22:58:55 273 5

原创 spring-boot 启动自动加载配置的原理相关

spring-boot 自动加载的原理概述:spring-boot项目中,我们只要创建一个启动类并且标注@SpringBootApplication注解,就可以完成自动化的配置,这其中的原理,主要就是@SpringBootApplication注解的作用,下面我们详细分析下这个注解。一、SpringBootApplication注解@SpringBootApplication注解主要包装了三个子注解如下:@SpringBootConfiguration、@EnableAutoCon...

2021-01-27 22:08:43 423 3

原创 假装看源码之springmvc (四) springmvc的处理方法返回值处理

springmvc的处理方法返回值处理在springmvc我们自己创建的Controller中的方法,可以返回不同的返回值,而不管是什么样的返回值,最后的请求都会被正确的处理,在前面视图解析篇中,我们主要关注点是视图解析找视图,model数据合并,渲染视图,然而在这个过程中,我们忽略了这个解析视图的名称是怎么来的,resetFul请求(responseBody)没有视图,又是怎么中断请求的,不同的返回值是怎么通用的处理成modelAndValue的,带着这些问题,为了更加深入的探究这里面的奥秘,今天..

2021-01-26 22:46:14 505 3

原创 假装看源码之springmvc (三) springmvc的视图解析

springmvc的视图解析概述:springmvc的视图解析主要是通过ViewResolver构建View,然后组装model数据,最后渲染视图,ViewResolver是由我们配置的,默认提供的ViewResolver是InternalResourceViewResolver即Jsp的视图,下面我们在源码里找到视图解析的原理和实现。一、ViewResolver分析springmvc视图解析是通过ViewResolver根据view的名称,来查询指定的view,而View复制渲染,Resolv

2021-01-23 00:25:37 250 5

原创 LinkedHashMap实现LRU以及其在spring-mvc中AbstractCachingViewResolver运用

LinkedHashMap实现LRU以及其在spring-mvc中AbstractCachingViewResolver运用一、LinkedHashMap实现LRU1、LinkedHashMap有一个三个参数的构造函数,new LinkedHashMap<Object, View>(size, 0.75f, true),其中第三个参数accessOrder的作用是如果元素被访问的情况下,是否把元素添加到链表的尾部。结合LinkedHashMap的一个protected的removeEld

2021-01-22 23:15:25 271 3

原创 假装看源码之springmvc (二) 重定向带参数RedirectAttributes的原理

重定向带参数RedirectAttributes的原理一、 概述:有些功能需要在重定向的时候,带上上一次请求的参数,第一个方法,可以采用重定向拼接参数方法,第二个方法,可以采用RedirectAttributes的方式,用它来添加需要重定向带上的参数,而RedirectAttributes也有2个方式。然后重定向请求返回到页面的时候,才可以得到这个请求的参数,或者用@ModelAttribute获取。RedirectAttributes重定向带参数的2个方式:方式1: 通过att...

2021-01-21 22:54:46 598 3

原创 spring-mvc拦截器的原理和范例演示

spring-mvc拦截器 概述: spring-mvc拦截器主要是通过实现HandlerInterceptor接口,在spring-mvc的核心DispatcherServlet执行主要处理请求方法doDispatch时,由处理器映射器HandlerMapping根据请求对象requset的请求路径,找到对应的Handler以及包装HandlerInterceptor实现类组装成HandlerInterceptorChain,然后由HandlerInterceptorChain根据Ha...

2021-01-21 20:31:02 249 3

原创 spring-boot-note11---springsecurity的使用

前言: Spring Security 是 Spring 家族中的一个安全管理框架,Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限..

2021-01-20 21:51:29 206 3

原创 shiro多realm的spring-boot案例剖析

shiro多realm整合的spring-boot案例剖析 概述:shiro认证的流程主要是通过securityManager调用login(Subject subject, AuthenticationToken token)方法,实际上委托的是Authenticator(认证器进行认证),默认情况下使用的是ModularRealmAuthenticator认证器,如果我们只有1个realm,最终的认证操作就是调用这个realm,如果我们有多个realm呢?这个时候就需要我们对Modular..

2021-01-18 22:14:57 394 4

原创 vue基础扩展9-属性监测变更原理

// vue属性监测变更原理 // 概述: 在使用vue中我们在data中定义的属性,能够在改变后,页面能够监听这些变化,下面演示属性监测变更的一些原理。 // 1、定义一个对象,用get、set改写属性, 即在get和set可以定义扩展的功能,而vue属性监测变更主要是通过同一个Dep对象 // 实现get,set的变更监听。即get时(如页面使用属性时),包装使用这些者属性为一个(Watch对象),添加到Dep中,而set时 //,调用这些所有, 添加的监听。 var obj.

2021-01-15 23:12:04 268 3

原创 vue基础扩展8--solt详解

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展8--solt详解</title></head><body> <!--- 一、旧的插槽 概述:插槽是什么? 顾明思意就是,在组件内定义了一个占位符,可以用来拿到组件包裹的内容进行渲染。 或者说我们在使用组件时,在组件内.

2021-01-15 23:11:15 1599 4

原创 vue基础扩展7--provide和reject

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展7--provide和reject</title></head><body> <script> // 1、基本使用范例 var Provider = { data() { return { ..

2021-01-15 23:10:06 796 3

原创 vue基础扩展6--v-model原理

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展6--v-model原理</title></head><body> <div id="app"> <h2>测试v-model的替代</h2> <input :value="text" @input..

2021-01-15 23:09:26 225 3

原创 vue基础扩展5--重置表单成默认值

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展5--重置表单成默认值</title></head><body> <!--- 概述:vue 的data数据,会在vue创建后,绑定到options属性下,因此还原表单默认值可以使用 this.query = this.$opt.

2021-01-15 23:08:51 1590 3

原创 vue基础扩展4---$parent属性

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展4---$parent属性</title></head><body> <div id="app"> {{msg}} <my-child ></my-child> </div> <s.

2021-01-15 23:08:21 573 3

原创 vue基础扩展3---$on和$emit的使用

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>vue基础扩展3---$on和$emit的使用</title></head><body> <!-- // 监听自定义事件 vm.$on('eventName',msg=>{ }); // 触发自定义事件 vm.$emit('eventName..

2021-01-15 23:07:38 2241 3

原创 vue基础扩展2---$refs的使用

<scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><title>vue基础扩展2---$refs的使用</title></head><body><divid="app"><com-aref="comA">组件</com-a><divref="ref_do...

2021-01-15 23:07:06 277 3

原创 vue基础扩展1---响应式属性监测

<title>vue基础扩展1---响应式属性监测</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <style> .wrap { margin-bottom: 20px;min-height: 100px; border: 1px solid #333;} </style></head>&lt.

2021-01-15 23:06:15 216 3

原创 java基础review(4)---java反射

java反射一、理论JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.二、案例演示/** * 演示类 */ public static class Person { st

2021-01-13 21:13:28 207 3

原创 java基础review(3)---IO基本总结

一、io的的介绍1、网上盗图一张,主要的类结构二、demo案例总结1、Reader、Writer * FileReader/FileWriter : 从文件读字符数据,写入字符数据到文件 * CharArrayReader/Writer:从char数组读数据到字符串缓冲区,写字符串、char数组到字符串缓冲区。 * BufferedReader/BufferedWriter:包装字符流输入输出,内部有buff缓冲 @Test public...

2021-01-12 22:11:29 172 3

原创 过滤器模式之servlet过滤器和mybaits的intercept

一、Servlet的过滤器链(FilterChian)演示概述:* 1、主要接口和类* FilterChian:定义了过滤器链接口* ApplicationFilterChain :过滤器链实现,内部有过滤器Filters数组和servlet实例的成员变量* Servlet:封装请求响应的servlet* Request:请求对象* Response:响应对象* Filter: 过滤器接口 * 2、...

2021-01-12 20:57:02 269 3

原创 java基础review(2)---java集合框架最精简最齐全总结

java集合框架最精简最齐全总结一、集合框架主要类结构1、类介绍List接口:ArrayList 、Voctor、LinkedList (同时实现Queue接口)Set接口:HashSet、LinkedHashSet、TreeSetMap接口:HashMap、HashTable、TreeMap、LinkedHashMap2、迭代器Iterator接口,用于遍历集合元素的接口,ListIterator接口,专门用来list遍历,可以实现集合修改。Set和Li...

2021-01-11 21:27:46 204 4

原创 js设计模式(3)---状态模式、责任链、装饰者

一、装饰者装饰者模式:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。1、下面演示仿java版本的装饰者模式。var Plane = function () { };Plane.prototype.fire = function () { console.log('发射普通子弹');}var MissileDecorator = function (plane) { this.plane = plane;}MissileDecorator.p..

2021-01-11 16:02:07 180 3

原创 js设计模式(2)---模板方法、监听器模式、命令模式

一、模板方法模式js中没有抽象类,模板方法就是父类的方法的执行,依赖于子类来完成,如果子类没有现实,那么就是一个空方法。1、类java方式演示模板方法 var Root = function() { } // init 就是模板方法,它有些方法是调用了未声明(抽象类未实现)的方法。 Root.prototype.init = function() { this.opt1(); this.opt2(); this.opt3(); } Roo...

2021-01-10 23:11:04 289 3

原创 js设计模式(1)---单例模式、策略模式、代理模式、迭代器

js设计模式系列(1)----此文主要是对<<JavaScript设计模式与开发实践>>一书的范例摘要。一、单例模式1、js没有类的概念,如果是字面量对象的方式,那么直接创建的字面量对象就是一个单例对象,如果我们需要兼顾构造函数创建对象以及惰性加载的方式,就可以采用闭包缓存已经创建的对象,详见下面案例:var getSingle = function(fn) { // fn是创建对象的方法 var result ; return function() {

2021-01-10 22:18:01 283 3

原创 分布式相关理论汇总

分布式相关理论文档: 一、分布式的基本概念 1、分布式概述: 分布式(distributed)是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段,将一个业务拆分成不同的子业务, 分布在不同的机器上执行。服务之间通过远程调用协同工作,对外提供服务 该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式缓存、分布式数据库、分布式计算、分布式文件系统等, 一些技术如MQ、Redis、zookeeper等都跟分布式有...

2021-01-10 17:02:59 334 4

原创 java基础review(1)---jdk8前后日期时间工具使用总结

第一部分 jdk8前日期时间工具使用总结1、Date基本操作 @Test public void test0() { Date date = new Date(); // 当前时间 long time = date.getTime(); System.out.println(time); // 1610200422658 --- 1970开始的毫秒 date = new Date(1610200422658l); // 用时间戳构造Date }2、时间格式化字符串 @

2021-01-09 23:30:38 201 3

原创 java并发相关(5)---并发理论相关

目录: 1、多线程介绍 2、线程运行流程 3、线程安全 4、synchronized、volatile、锁 5、CAS 介绍 一、多线程相关介绍 1、什么是多线程,多线程的优劣? 多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。 可以提高 CPU 的利用率。在多线程程序中,一个线程必须等待的时候,CPU 可以运行其它的线程而不是等待, 这样就...

2021-01-09 16:47:15 236 3

原创 java并发相关(4)---线程池ThreadPoolExecutor

* ThreadPoolExecutor(线程池)* 理论:* 1、概念:线程池做的工作主要是控制运行的线程的数量,处理过程中将任务加入队列,然后在线程创建后启动这些任务。* 2、运作流程:当前线程数 < 核心线程,创建新线程,当前线程数 > 核心 < 最大,加入队列,当前队列满,创建新线程。* 超过最大线程并且队列满则抛弃。一、ThreadPoolExecutor的参数解释:* 1、核心参数: *...

2021-01-09 14:50:38 184 3

原创 java并发相关(3)---Atomic原子类相关

一、AtomicInteger等Atomic是一系列原子类:* AtomicInteger,AtomicLong,AtomicReference,AtomicIntegerArray...。* 内部实现原理是:循环CAS。public class AtomicBaseDemo { public static void main(String[] args) throws InterruptedException { //一、Api基本使用 AtomicInteger ...

2021-01-07 22:16:03 241 3

原创 java并发相关(2)---并发工具的使用

一、CountDownLatch(闭锁),* 概念:同步辅助类,构造函数传入计数count,调用await可以阻塞被调用的* 当前线程,而在其他线程中调用countDown次数达到count时,那么await就停止阻塞,从而* 达到了一个线程等待另外1个或多个线程执行完成的效果。public class CountDownLatchDemo { /** * 案例1)想达到的效果是一个主线程等待,其他count个数的线程执行完成。 * 缺点:在其他线程启动到await之间会存在...

2021-01-07 20:55:26 196 3

原创 java并发相关(1)---线程相关基本api使用

线程相关基本api使用一、threadLocal1、概念:是线程局部变量,不管哪个线程访问此变量,得到的值都是哪个线程当前的存储的值,每个线程有一个ThreadLocalMap , 它可以存此线程的变量,而如果把key值做成所有线程共享的静态变量或其他,这样就能以一个相同的key在不同的线程中存不同的对象。2、使用:public class T00_ThreadLocal { /**演示*/ public static void main(String args[]){ Thr

2021-01-06 22:57:26 198 3

原创 spring-boot-note10---jdbc-sharding使用

jdbc-sharding整合spring-boot的使用。demo简介:有一个brand表分别在dbs_0库和dbs_1库。有一个product表分别在dbs_0有product_0和product_1,即垂直分库水平分表,然后使用spring-boot整合jdbc-sharding的方式,完成增删改查操作。一、ddl语句 数据库分别为:dbs_0 、dbs_1DROP TABLE IF EXISTS `brand`;CREATE TABLE `brand` ( `id` bigin.

2021-01-04 22:59:48 225 3

原创 spring-boot-note9---dubbo基本使用

4spring-boot-note9---dubbo的基本使用工程简介:一个父项目demo82_dubbo_all,下面四个子项目:spring_dubbo_api、spring_dubbo_common、spring_dubbo_controller、spring_dubbo_service。依赖关系:spring_dubbo_controller和spring_dubbo_service一起依赖spring_dubbo_api。而spring_dubbo_api依赖spring_dubbo_co

2021-01-04 21:27:25 213 3

原创 spring-boot-note8----shiro-jwt整合

spring-boot 整合shiro和jwt的认证方式前言:shiro框架是如今web开发做权限控制非常流行的,JWT就是(JSON Web Token),即如何存储认证后的信息的一种方式,比如以前登陆后,判断username,password如果ok,就存储根据username找出的userinfo到session中。用户是否登陆,判断session中是否有userinfo。而JWT就是把认证后的信息采用一种格式token,明文存储在客户端,客服端每次请求带上这个token,可以判断这...

2021-01-03 23:18:14 278 4

原创 spring-boot-note7---swagger2的整合

spring-boot整合swagger2使用为什么使用swagger?手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理Swagger也就是为了解决这个问题,本文主要写spring-boot整合swagger,swagger详细介绍和使用可百度。一、配置相关1、pom.xml <dependency&gt...

2021-01-03 16:27:30 163 4

原创 spring-boot-note6---redis

SpringBoot整合Redis,本文采用RedisTemplate操作redis和配置CacheMannager使用缓存注解的二个方式。一、配置相关 1、添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId>.

2021-01-03 15:47:52 201 4

原创 spring-boot-note5----dynamicDatasource

spring-dynamicDatasource,spirng动态数据源在spring-boot的使用方式。动态数据源主要使用就是多个库动态切换,比如主从读写分离,垂直分库,业务分库等等需求。主要原理: 动态数据源的原理就是继承AbstractRoutingDataSource,实现其中的一个determineCurrentLookupKey方法 /** * 如何获取数据源(bean的名称)的方式,从我们实现的DbContextHolder线程变量中获取。 **/ @Over..

2021-01-03 00:36:25 356 3

原创 spring-boot-note4---freemarket

spring-boot整合freemarketfreemarker是一个模板引擎,我们在使用SpringMVC等框架的时候,使用的都是jsp,jsp的本质其实就是一个Servlet,其中的数据需要在后端进行渲染,并且每次都要渲染,而后端使用模板引擎的好处就是,渲染效率高,并且模板有些内容不需要重复渲染。本文主要介绍spring-boot整合freemarket的使用。工程一览一、在application.properties中配置#freemarket#freemarket的配置.

2021-01-02 23:42:22 303 3

net_assist.rar

NetAssist是一款免费的网络调试工具,是学习netty时候,必备工具。

2021-03-11

dubbo-admin-2.6.0

dubbo-admin打包好的war包

2021-01-04

windows Let's Encrypt工具

Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱!   3、Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了Let's Encrypt一键申请安装,简单! 4、Let's Encrypt证书有效期三个月,每三个月需要续签证书 see why 这个工具是Let's Encrypt证书在windows平台使用的。

2018-08-21

深入理解Java虚拟机

深入理解java虚拟机,中文版,pdf带目录,文件小,质量高

2018-01-27

空空如也

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

TA关注的人

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