自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力充实,坚持50%以上原创

最近忙毕业,不能回复。个人笔记,内容仅供参考

  • 博客(143)
  • 资源 (10)
  • 问答 (2)
  • 收藏
  • 关注

原创 【认证服务】验证码、社交登录、分布式session、单点登录

本文是谷粒商城项目笔记文章目录认证服务**1 gulimall-auth-server****2 注册验证码**(1) 验证码倒计时(2) 阿里云-短信服务(3) 接口防刷(4) 注册VO(5) 注册用户保存(6)密码加密(7) 用户名密码登录**3 社交登录**(1) OAuth2.0(2) 微博开放平台使用(3) 代码编写/weibo/successtoken保存**4 SpringSession**(1) session 原理(2) 分布式session解决方案1) session复制2) h.

2021-02-28 23:24:56 999

原创 【谷粒商城】高级篇-分布式锁与缓存

缓存本地缓存:和微服务同一个进程。缺点:分布式时分布式缓存:缓存中间件1. 本地缓存category、brand、productredisredis学习笔记:https://blog.csdn.net/hancoder/article/details/105694186安装docker-redisproduct导入依赖<dependency> <groupId>org.springframework.boot</groupId>

2021-02-23 22:11:20 1030

原创 谷粒商城笔记-分布式高级(3/4)

1. ELASTICSEARCH1、安装elastic searchdokcer中安装elastic search(1)下载ealastic search和kibanadocker pull elasticsearch:7.6.2docker pull kibana:7.6.2(2)配置mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/dataecho "http.host: 0.0.0.0" >

2020-07-27 15:27:20 22586 16

原创 谷粒商城笔记-基础篇-2(2/4)

1. 整体介绍1)安装vagrant2)安装Centos7$ vagrant init centos/7A `Vagrantfile` has been placed in this directory. You are nowready to `vagrant up` your first virtual environment! Please readthe comments in the Vagrantfile as well as documentation on`vagrantup

2020-07-27 15:25:00 38469 73

原创 谷粒商城笔记-新手级教程(1/4)

本文重点记录老师讲的话 和 一些配置流程,笔记中有的内容尽量少记录。边看视频变更新,我尽快更新。另外各种资源可以去该视频的评论区找。https://www.bilibili.com/video/BV1np4y1C7Yf文章目录一、项目简介二、分布式基础概念微服务划分图环境搭建虚拟机安装dockerRedismavenvsCode安装git码云数据库16集 npm install报错解决:先把node_modules全部删除,然后再npm install chromedriver --chromedr

2020-06-23 13:59:12 86288 99

原创 分布式事务与下单

=购物车==构建gulimall-cart,复制静态资源到nginx,修改网关购物车分为离线购物车和登录购物车离线购物车重启浏览器了也还有1、购物车需求特点:读多写少,放入数据库并不合适登录状态:登录购物车放入数据库mongodb放入redis(采用)登录以后,将离线购物车里合并后清空离线购物车未登录状态:离线购物车放入localstorage浏览器的技术cookieWebSQL放入redis(采用)浏览器重启后还在2、购物车VO(1) 数据结构分析

2021-03-18 16:40:51 592

原创 【rabbitMQ】笔记

文章目录1. 消息中间件概述1.1. 什么是消息中间件1.2. AMQP 和 JMS1.2.1. AMQP1.2.2. JMS1.2.3. AMQP 与 JMS 区别1.3. 消息队列产品1.4. RabbitMQ2. 安装及配置RabbitMQ3. RabbitMQ入门3.1. 搭建示例工程3.2. 编写生产者3.3. 编写消费者3.4. 小结4. AMQP4.1. 相关概念介绍4.2. RabbitMQ运转流程4.3. 生产者流转过程说明4.4. 消费者流转过程说明5. RabbitMQ工作模式4.1.

2021-03-03 00:10:06 642 4

原创 【springboot】5、自动配置

servlet容器要遵循servlet规范。如tomcat、nettyjdbc的接口Driver,在用MySQL的时候,要有Driver的实现类。初始化驱动的时候,class.forName()会加载驱动,mysql的话实现类是com.mysql.Driver。他在工厂中 把接口作为文件名,里面写上实现类,tomcat就会读这个文件,这个是servlet规范java的文件路径是META-INF/servicestomcat 的文件路径是META-INF/services/javax.servlet.

2021-02-22 17:44:16 78

原创 【springboot】4、整合其他框架

五、Dockerdocker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用来保存各种打包好的软件镜像;docker镜像(Images):软件打包好的镜像;放在docker仓库中;docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用3、安装Docker# 在linux虚拟机上安装docker1、检查内核

2021-02-22 17:43:42 55

原创 【springboot】3、实战

6、RestfulCRUD1)、默认访问首页//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能//@EnableWebMvc 不要接管SpringMVC@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry

2021-02-22 17:43:02 25

原创 【springboot】2、thymeleaf

四、thymeleaf1、简介使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码;2、SpringBoot对静态资源的映射规则;@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)public class ResourcePrope

2021-02-22 17:42:07 109

原创 【springboot】1、基础

**一、**Spring Boot 入门1.1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;1.2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务的组合;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;详细参照微服务文档1.3、MAVEN准备http://www

2021-02-22 17:41:27 120

原创 ElasticSearch、上架与检索

文章目录1. ELASTIC SEARCH0、简介1、安装elastic search2、初步检索1)_CAT2)索引一个文档3)查看文档4)更新文档5)删除文档或索引6)ES的批量操作——bulk7)样本测试数据3、进阶检索1)search Api2)Query DSL(1)基本语法格式(2)返回部分字段(3)match匹配查询(4) match_phrase [短句匹配](5)multi_math【多字段匹配】(6)bool用来做复合查询(7)Filter【结果过滤】(8)term(9)Aggregat

2021-02-21 19:38:11 3373 12

原创 npm install node-sass报错问题的解决

主要是node-sass版本问题,他的版本看和node版本对应0 安装可以去这里找到v12的版本。(不要用12.0,可以用12.1)https://npm.taobao.org/mirrors/node/NPM是随同NodeJS一起安装的包管理工具。JavaScript-NPM类似于java-Maven。命令行输入node -v 检查配置好了,配置npm的镜像仓库地址,再执node -vnpm config set registry http://registry.npm.taobao.o

2021-02-16 04:42:34 1269 10

原创 mybatis-plus简单笔记

https://www.bilibili.com/video/BV1yA411t782MyBatis Plus国产的开源框架,基于 MyBatis核心功能就是简化 MyBatis 的开发,提高效率。MyBatis Plus 快速上手Spring Boot(2.3.0) + MyBatis Plus(国产的开源框架,并没有接入到 Spring 官方孵化器中)1、创建 Maven 工程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-08Cb1Y7w-161297215

2021-02-10 23:49:46 89 1

原创 linux文件互传scp/rsync/xsync分发脚本

一般性的文件使用MobaXterm软件直接拖拽即可,而服务器没有界面等问题可以采用命令的方式传输文章目录\1. scp(secure copy)安全拷贝\2. rsync 远程同步工具\3. xsync集群分发脚本\1. scp(secure copy)安全拷贝scp,linux命令,可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)语法:把本服务器的文件传到其他服务器中scp -r 源文件 目标文件 scp -r $pdir/$fn

2021-01-26 05:41:39 70 1

原创 【tomcat】5、调优

最大请求数5 Web 应用配置web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义 。 在 Tomcat 中, Web 应用的描述信息包括tomcat/conf/web.xml 中默认配置以及 Web 应用 WEB-INF/web.xml 下的定制配置。5.1 ServletContext 初始化参数我们可以通过<context‐param>添加ServletContext 初始化参数,它配置了一个键值对,这样我们可以在应用程序中使用

2021-01-24 02:23:43 139

原创 【tomcat】3、预备知识与参数解析

一、socket和http1 tcp和httpsocket是tcp层上面封装的协议,http是应用层封装的协议计算机网络的知识告诉我们,tcp需要先三次握手后才能通信,udp无需握手。应用层是软件之间的通信,就是我们说的浏览器和服务器流程:TCP连接三次握手。可以把这里认为是socket,但是socket是tcp之上的封装发送HTTP请求响应HTTP请求1.1 TCP要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使

2021-01-24 02:10:41 138

原创 【tomcat】2、源码环境搭建

一、编译源码去官网下载src源码包source code distributions解压zip压缩包修改home进入解压目录,并创建一个目录,命名为home , 并将conf、webapps目录移入home 目录中pom在当前目录下创建一个 pom.xml 文件,引入tomcat的依赖包<?xml version="1.0" encoding="UTF‐8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

2021-01-23 23:19:35 117 3

原创 【tomcat】4、源码解析

会尽快整理一、编译源码去官网下载src源码包source code distributions解压zip压缩包修改home进入解压目录,并创建一个目录,命名为home , 并将conf、webapps目录移入home 目录中pom在当前目录下创建一个 pom.xml 文件,引入tomcat的依赖包<?xml version="1.0" encoding="UTF‐8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

2021-01-23 21:04:49 174 1

原创 【网络通信】Java NIO

基本概念和IO入门对于任何程序设计语言而言,输入输出(Input/Output)系统都是非常核心的功能。程序运行需要数据,数据的获取往往需要跟外部系统进行通信,外部系统可能是文件、数据库、其他程序、网络、IO设备等等。外部系统比较复杂多变,那么我们有必要通过某种手段进行抽象、屏蔽外部的差异,从而实现更加便捷的编程。Jvm虚拟机主要打交道的io操作是文件,内存,网络输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据)。常见的应用:Ø 读取硬盘上的文件内容到程序。例如

2021-01-03 19:40:08 90

原创 【网络通信】4、零拷贝、DMA、系统调用、消息队列原理

本文通过一步步讲解预备知识最后引出零拷贝文章目录DMA系统调用内核缓冲区读写:虚拟内存:零拷贝:传统IO①mmap零拷贝②sendfile零拷贝零拷贝总结mmap 和 sendFile 的区别NIO的buffer:NIO必然使用了堆外空间:java-NIO 零拷贝案例DMADMA: direct memory access 直接内存拷贝(不使用 CPU)1 要把内存数据发送到网卡然后发出去时:没有DMA时候怎么办:CPU读内存数据到CPU的高速缓存,再写到网卡。这样就把CPU的速度拉低到和网卡一个

2021-01-03 19:36:43 91

原创 【网络】java密码安全

笔记整理自:尚硅谷java密码安全学+Swagger2第一章 密码学1.1 密码学基本概念密码在我们的生活中有着重要的作用,那么密码究竟来自何方,为何会产生呢?密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的替换法到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。1.1.1 古典密码学在古代的战争中,多见使用隐藏信息的方

2020-12-20 22:32:43 453

原创 【spring源码】十二、监听器

spring监听器一、ApplicationListener接口作用:监听容器中发布的事件,完成事件驱动开发实现ApplicationListener接口//如果要写实现类就得实现这个接口public interface ApplicationListener<E extends ApplicationEvent> //泛型是要监听的事件,监听ApplicationEvent及其下面的子事件。即我们要发布事件,这个事件应该是ApplicationEvent的子类 extends

2020-12-20 02:25:25 152 2

原创 【spring源码】十一、事务

3.声明式事务都是针对于 ServiceImpl 类下方法的.4.事务管理器基于通知(advice)的.5.在 spring 配置文件中配置声明式事务<context:property-placeholder location="classpath:db.properties,classpath:second.properties"/><!-- 定义数据源bean,使用C3P0数据源实现 --><bean id="dataSource"class="org.sprin

2020-12-20 02:24:50 139 1

原创 【spring源码】十、spring如何整合其他框架

在前面,待整理

2020-12-20 02:24:01 230 1

原创 【spring源码】九、spring动态代理的创建

文章目录⑪==finishBeanFactoryIntialization==preInstantiateSingletons重温createBeanresolveBeforeInstantiationapplyBeanPostProcessorsBeforeInstantiationibp.postProcessBeforeInstantiationdoCreateBean==postProcessAfterInitialization====wrapIfNecessary==InstantiationM

2020-12-20 02:23:09 124 1

原创 【spring源码】八、以循环依赖解释getBean

getBean流程:doGetBeangetSingleton1singletionObject.get(beanName);有则直接返回earlySingletonObjects.get(beanName);有则直接返回singletonFactories.get(beanName);没有就直接返回singletonFactories.get(beanName);获取到了工厂singletonObject=singletonFactory.getObject();earlySing

2020-12-20 02:21:14 138 1

原创 【spring源码】七、后置处理器BeanPostProcessor

⑥registerBeanPostProcessors()注册(实例化)后置处理器我们想要了解spring在什么时候注册自动代理,即@EnableAspectJAutoProxy等一系列执行的时机。这里值得注意的是,@EnableAspectJAutoProxy的操作是在refresh()方法的invoke()阶段完成了bean定义信息的注入,而还没完成实例化。实例化是在registerBeanPostProcessor注册后置处理器阶段完成的。public abstract class Abstra

2020-12-20 02:20:41 90 1

原创 【spring源码】六、@EnableAspectJAutoProxy

⑤invokeBeanFactoryPostProcessors()先说明:invokeBeanFactoryPostProcessors()是在refresh()方法中的第⑤步,他的作用是注册bean的定义信息,但还没进行创建实例。我们下面介绍了注解@EnableAspectJAutoProxy就是在这个阶段注册一个bean定义,但实例化要推迟到第⑥步registerBeanPostProcessor()完成@EnableAspectJAutoProxy@EnableAspectJAutoProx

2020-12-20 02:19:46 109 1

原创 【spring源码】五、工厂后置处理器BeanFactoryPostProcessor【重要】

文章目录一、工厂后置处理器bean定义时候什么被装入源码-工厂后置处理器工厂后置处理器与`ConfigurationClassPostProcessor`spring的工厂后置处理器和自定义工厂后置处理器工厂后置处理器的执行时机二、自定义工厂后置处理器(1)BeanFactoryPostProcessor(2)BeanDefinitionRegistryPostProcessor(3)总结三、问题一:AnnotatedBeanDefinitionReader容器构造函数的两种写法四、工厂后置处理器实例化一

2020-12-20 02:19:10 323 1

原创 【spring源码】四、refresh流程预览

文章目录AOPAOP使用步骤==AOP源码流程==测试用例spring生成的代理类AOPAOP使用步骤导包spring-aspects在配置类上@EnableAspectJAutoProxy 通知方法: 前置通知(@Before):logStart:在目标方法(div)运行之前运行 后置通知(@After):logEnd:在目标方法(div)运行结束之后运行(无论方法正常结束还是异常结束) 返回通知(@AfterReturning):logReturn:在目标方法(

2020-12-20 02:12:25 148 1

原创 【spring源码】三、helloworld准备

文章目录一、工厂后置处理器bean定义时候什么被装入源码-工厂后置处理器工厂后置处理器与`ConfigurationClassPostProcessor`spring的工厂后置处理器和自定义工厂后置处理器工厂后置处理器的执行时机二、自定义工厂后置处理器(1)BeanFactoryPostProcessor(2)BeanDefinitionRegistryPostProcessor(3)总结三、问题一:AnnotatedBeanDefinitionReader容器构造函数的两种写法一、工厂后置处理器按理说

2020-12-19 22:21:36 63 1

原创 【spring源码】二、bean定义、工厂

基础概念1、IoC 和 DIIoC (Inversion of Control),即控制反转。这不是一种新的技术,而是 Spring 的一种设计思想。在传统的程序设计,我们直接在对象内部通过 new 来创建对象,是程序主动去创建依赖对象;而在 Spring 中有专门的一个容器来创建和管理这些对象,并将对象依赖的其他对象注入到该对象中,这个容器我们一般称为 IoC 容器。所有的类的创建、销毁都由 Spring 来控制,也就是说控制对象生存周期的不再是引用它的对象,而是 Spring。对于某个具体的对象

2020-12-19 21:24:59 74 1

原创 【spring源码】一、注解驱动开发

文章目录原来xml方式注解驱动配置类@Configuration@ComponentScan【bean注册方法1】@Bean【bean注册方法2】@Conditional@Import【bean注册方法3】@FactoryBean【bean注册方法4】组件注册生命周期后置处理器属性赋值@Value自动装配@Autowired+@Qualifier+@PrimaryAware@Profile:AOP声明式事务原来xml方式https://www.jianshu.com/p/2692bf784976Be

2020-12-19 19:45:30 118 1

转载 【设计模式】

文章目录delegate委派模式代码公共接口bossleader普通源main在源码中的体现delegate总结Strategy策略模式1 应用场景2 代码促销接口促销实现类传入促销方案客户端使用最终方案3 策略模式在源码中的体现java-Comparator接口spring-Resource接口spring-InstantiationStrategy4 委派模式和策略模式综合应用装饰者模式定义使用场景具体业务场景具体实现接口现有类利用构造扩展现有类优缺点装饰者模式与代理模式的区别装饰者模式与派发模式装

2020-12-18 21:04:31 72 1

原创 设计模式之适配器、模板方法、装饰者、组合

适配器模式12V直流的计算器和交流100V之间需要适配器转换现有程序无法直接使用,需要做适当的交换之后才能使用。填补“现有程序”和“所需的程序”之间的差异的设计模式就是Adapter适配器模式Adapter模式也被称为Wrapper模式,包装器,适配器模式两种方式:组合方式继承方式实例现有类需求:将hello包装为(hello)或者*hello*消费端要使用的是Print接口,提供者现只有Banner类要转换一下Banner,转成Print给消费者// 消费者要的接口pu

2020-12-16 16:03:48 42

原创 【mybatis源码】重要对象

mybatis相关Configuration:全局唯一MapperRegistry:mapper注册器,全局唯一,他主要负责addMapper注册的逻辑,和config是互相持有的SqlSessionFactory:全局唯一。xml的解析结果最顶级是解析出来个SqlSessionFactorySqlSession:每个线程都有自己的SqlSessionconfiguration// properties文件的内容Properties variables;// 解析过的mapper.xml。有

2020-12-16 03:57:36 85 2

原创 【mybatis源码】3、插件源码分析

请先看: mybatis源码分析:https://blog.csdn.net/hancoder/article/details/110152732Mybatis允许我们在四大对象执行的过程中对其指定方法进行拦截,这样就可以很方便了进行功能的增强,这个功能跟Spring的切面编程非常类似。文章目录helloworld预热jdbcmybatis四大对象插件原理插件的代理来源代理执行器①getSignatureMap(interceptor)②getAllInterfaces③Proxy.newProxyIn

2020-12-09 01:18:30 132

原创 【网络】长连接、Socket、tomcat四个容器

文章目录socket与长连接短连接一、长连接/短连接二、Socketsocket通信流程:ServletTomcat四大容器四个容器的关系:阀门tomcat参数maxConnections、maxThreads、acceptCount关系图解:maxConnections、maxThreads、acceptCount关系整个就餐的流程,大致如下:Tomcat源码总结调优Linux查看连接数,并发数查看tomcat 并发连接数配置长连接为什么要配置长连接1,Nginx 设置2,Tomcat 设置三、测试参考

2020-11-30 03:04:12 247

鲁班学院数据库高级笔记.zip

鲁班学院数据库mysql底层笔记,周瑜老师发布的,包括3个文档:一、InnoDb行格式、数据页结构以及索引底层原理分析.pdf 二、B+树索引实战.pdf 三、Mysql事务以及锁原理讲解.pdf

2020-04-20

黑马Kafka笔记代码.zip

黑马kafka笔记与代码,是b站最好的一个视频的笔记,还可以多多看看其他书。需要视频也在博客主页评论

2020-07-19

课件-内存结构,垃圾回收,字节码,内存模型.zip

非常好的HM JVM课件,尤其是字节码的部门,非常良心,搭配HM JVM视频使用更加哦。博客地址https://blog.csdn.net/hancoder/article/details/105210258

2020-09-10

16 解析HashMap.txt

HashMap、ConcurrentHashMap源码级解读,并且对比了JDK7和8实现的不同,进行了大量的解释,结合了多个学习视频

2020-06-08

解析HashMap.md

黑马程序员HashMap的笔记,面试必问,笔记很好,内容言简意赅,看完收获很多,希望能帮助大家的学习

2020-04-10

YOLO课件,里面有些内容可以帮助理解YOLO

YOLO课件,里面有些内容可以帮助理解YOLO。里面有些图还是有点用的。另外本人博客主页有解读YOLO的文章。darknet

2019-03-01

HashMap、ConcurrenyHashMap源码解读

hashmap源码解读,并且会对比JDK7和8实现的不同,已更新ConcurrentHashMap部分,且结合记录了多个视频的笔记。可以在https://blog.csdn.net/hancoder/article/details/105424922 获取最新笔记地址,下载过旧文件的可以私信我,我单独发给你最新版

2020-06-06

轻量级JavaEE红皮书第三版.7z

轻量级JavaEE第三版,源码,只有1-7章的,没有后面项目的。不是电子书,看好再下

2019-10-07

一图搞懂神经网络中的卷积

一图搞懂神经网络中的卷积,妈妈再也不用担心我不懂深度学习了~我全靠这张图活着了~

2019-10-02

getcolor_inst.exe

屏幕颜色取色器,可以取RGB颜色等,样式如#1C1F22,仅100k,非常好用,非常实用于CSS等开发

2019-12-16

空空如也

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

TA关注的人 TA的粉丝

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