自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (10)
  • 收藏
  • 关注

原创 spring源码学习总结1-IOC

学习spring源码的过程,就是开始,放弃,再开始,再放弃,再开始。。。的过程最近准备把学习到的spring内容整理下,先从IOC开始,来张思维导图,暂时学习到的IOC内容就是下面这些,后续会根据这张图来整理下之前的学习笔记,然后发出来。...

2021-04-12 14:05:27 92

原创 一条更新语句的执行流程——学习redo log两阶段提交

最近在整理之前学习的mysql知识,觉得看到的redo log两阶段提交的图都是流程图,不是交互图,太难记忆了,所以决定自己画一张以一条更新语句的执行流程来学习下redo log两阶段提交。update student set age=age+1 whre id=2;1.执行器:调用引擎接囗取id=2这一行2.引擎:数据页在内存中,返回,否则,先从磁盘读入内存,再返回3.执行器:拿到引擎给的行数据,把值加上1,得到新的一行数据4.执行器:调用引擎接口写入这行新数据5.引擎:将新行更新到内

2021-04-02 15:32:33 355

原创 MyBatis 源码学习17——学习总结

之前的内容都是总结至《MyBatis 3 源码深度解析》之前看的时候不知道重点,就每章都整理了下,一年过去了,回看这些内容,总结下学习重点,主要是四点一、Configuration类的三种作用1.控制MyBatis运行时的行为2.容器:存放TypeHandler(类型处理器)、Mapper、 SQL’,3.组件的工厂类:Executor、StatementHandler、ResultSetHandler、ParameterHandler,方便实现插件拦截二、MyBatis各组件与JDBC各组件之

2021-03-15 10:20:55 128 2

原创 权限系统重构回顾

最近在做物流权限系统的重构,回看梳理下流程,算是对这一工作的总结吧一、确认方案(最重要)表结构设计:用户,角色,权限及两两之前关系,共五张表,再加一个用户与仓库的绑定关系表(业务需要)权限认证框架:使用shiro,最近在做的一套新系统有用到,使用可以参考,而且相比springsecurity更轻量数据迁移:暂时有两套方案:1:不做数据迁移,系统分两次上线,第一次先上线新权限的配置页面,由业务方与产品配置,等配置数据有了之后,再上线全部内容2:做数据迁移,一次上线,存在的问题:旧的权限系统表

2021-03-05 15:49:52 287

原创 SSM项目整合Swagger常见问题

访问http://docker32-logistics.qipeipu.net/swagger-ui.html报503或404或不显示内容排查问题方向:1.看web.xml文件中DispatcherServlet配置,如<servlet-mapping> <servlet-name>BOSS MOBILE APP</servlet-name> <url-pattern>/*</url-pattern></servlet-mapp

2021-03-04 17:31:55 495 1

原创 spring源码学习总结9-IOC-循环依赖问题解决

这篇首先会介绍下解决循环依赖问题的三个类,然后再以一个例子来解释spring是怎么解决循环依赖的一、DefaultSingletonBeanRegistry介绍:spring解决循环依赖的核心类,用来存放三级缓存变量 : /** Cache of singleton factories: bean name --> ObjectFactory */ private final Map<String, ObjectFactory<?>> singletonFactori

2021-04-20 19:00:40 273

原创 spring源码学习总结8-IOC-IOC容器中初始化bean

一、源码入囗入囗:AbstractApplicationContext抽象类的refresh()方法中的finishBeanFactoryInitialization(beanFactory)方法这次先总结下代码流程本节讲解顺序,为从里往外1.先讲解下最核心的方法:AbstractAutowireCapableBeanFactory#doCreateBean方法2.然后其外层方法:AbstractBeanFactory#getBean(java.lang.String)方法3.最后讲解

2021-04-20 17:41:33 227

原创 spring源码学习总结7-IOC-IOC容器中建立BeanDefinition数据映射

一、IoC容器中建立BeanDefinition数据映射主要有三步:1.BeanDefinition的Resource定位2.BeanDefinition的载入3.注册BeanDefinition下面逐步分析二、BeanDefinition的Resource定位过程由ResourceLoader通过统一的Resource接口完成三种常规定位方式:1.主类所在包,@Component和@ComponentScan定位资源@Component标明哪个类被扫描进入Spring IoC容器@C

2021-04-16 18:38:32 229

原创 spring源码学习总结6-IOC-ApplicationContext的设计路线

一、ApplicationContext的设计路线上下文对容器不仅是扩展关系,更重要是持有关系,上下文是以属性形式持有了容器一、ApplicationContext接口上下文的顶级容器public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, Resou

2021-04-15 18:12:36 141

原创 spring源码学习总结5-IOC-BeanFactory的设计路线

一、BeanFactory的设计路线这里列出了xxxxBeanFactory:Bean工厂中的所有核心类下面对这些类做单个介绍二、BeanDefinitionRegistry接口:作用:BeanDefinition的注册中心核心方法:registerBeanDefinition(String beanName, BeanDefinition beanDefinition):注册BeanDefinition三、SingletonBeanRegistry接口作用:Bean注册中心核心方法

2021-04-14 10:49:44 96

原创 spring源码学习总结4-IOC-理解IOC

一、IoC容器基础内容Spring IoC容器一个管理Bean的容器两个基本功能:通过描述管理Bean,包括发布和获取Bean通过描述完成Bean间的依赖关系二、理解IOC,控制反转究竟是什么意思举个例子:我是一个学生,我想要学英语,我需要一个老师来对我辅导。实现如下:public class Student { @Autowired private Teacher teacher; public void leanEnglish(Teacher t

2021-04-14 10:24:15 77

原创 spring源码学习总结3-IOC-IOC常见扩展类

只列举最常用的一、InitializingBean方法:afterPropertiesSet()作用:初始化Bean时(bean实例已经生成),修改Bean属性(需要类实现此接囗)二、BeanPostProcessor方法:postProcessBeforeInitialization(Object bean, String beanName)postProcessAfterInitialization(Object bean, String beanName)作用:1.处理Bean对

2021-04-13 13:45:15 112

原创 spring源码学习总结2-IOC-Bean基础内容

一、Bean基础内容(4部分)1.Bean定义BeanDefinition:表示Bean,描述Bean的配置信息BeanDefinitionRegistry接囗(注册BeanDefinition,看名字就知道它的作用了),定义对BeanDefinition的各种增删改操作最重要的方法是注册BeanDefinition:registerBeanDefinition(String beanName, BeanDefinition beanDefinition)实现类:SimpleBeanDefin

2021-04-13 11:17:00 57

原创 Integer对象的比较

先了解两个知识点1.==与equals()如果等式两边是基本数据类型,是值的比较如果等式两边是对象,是对象地址的比较equals():对于Object对象,就是比较对象的地址:public boolean equals(Object obj) { return (this == obj);}对于Integer对象,对equals()方法进行了重写,改成了值的比较:public boolean equals(Object obj) { if (obj instanceof Intege

2021-04-01 14:28:45 1018

原创 int 数值溢出

int:4字节,1个字节8位(bit),第一位符号标识正负,所以int的取值范围为-2^31 - 2^31-1(-2147483648 ~ 2147483647)long:8字节,取值范围-263~263-1(-18446744073709551616 ~ 18446744073709551615)int 在标识一些时间的字段时,很容易超出使用范围,如对一个redis的key设置过期时间,之前过期时间是3天,32436001000=259200000<2147483647,没什么问题后来产品要

2021-04-01 11:47:23 3139

原创 NoClassDefFoundError: com/baomidou/mybatisplus/plugins/Page

现象描述:A项目调用B项目的接囗(dubbo调用)报错原因:B项目的接囗传参里使用了mybatis-plus的Page类,A项目中使用的mybatis-plus的版本是3.1.0,Page所在包为com.baomidou.mybatisplus.extension.plugins.pagination,B项目中使用的mybatis-plus的版本是2.1.9,page所在包为com.baomidou.mybatisplus.plugins因为mybatis-plus新旧版本的page不兼容,所以导

2021-03-31 11:39:07 6432

原创 BeanNotOfRequiredTypeException: Bean named ‘stringRedisTemplate‘...

报错:[ERROR] Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisUtils': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean

2021-03-30 11:49:12 504 1

原创 Spring AOP源码学习-----JAVA动态代理与Spring AOP动态代理的关系

此处以JDK动态代理为例JAVA动态代理有两大核心类,它们都在Java的反射包下(java.lang.reflect):InvocationHandler每一个代理实例都要有一个关联的InvocationHandler方法:Object invoke(Object proxy, Method method, Object[] args)作用:用于方法调用的约束与增强Proxy作用:创建动态代理类及其实例方法:1.构造函数(设置代理实例的调用处理器)Proxy(InvocationHan

2021-03-16 10:26:33 135

原创 shiro学习总结

shiro内容主要有两大部分:认证(你之前登录了没)和授权(你有没有权限登录)认证的原理:过滤器Filter,入囗DelegatingFilterProxy,spring的一个过滤器DelegatingFilterProxy->ShiroFilterFactoryBean->自定义过滤器(也可使用shiro自带过滤器)->subject.login()授权的原理:springAop实现的代理(现在都用注解来配置),引入AuthorizationAttributeSourceAdv

2021-03-05 17:56:28 132

原创 Collator实现中文排序

1.建一个中文排序的工具类/** * 比较器工具类 */public class ComparatorUtils { //当前环境设置成 CHINA 中文 private static Collator collator=Collator.getInstance(Locale.CHINA); public static int compare(String o1, String o2) { //调用内部的方法,进行比较。 return co

2021-01-06 11:28:48 923

原创 使用explain分析sql语句————记一次优化

直接上sql,省略必要条件,在测试环境分析,数据较少,但依旧可看出问题:zl_transport_order 运单表,可理解为订单表,id为运单id,transport_order_no为运单号zl_package 包裹表,transport_order_id为运单id,transport_order_no为运单号EXPLAIN SELECT t1.* FROM zl_transport_order AS t1 JOIN zl_package AS t2 ON t1.id = t2.tra

2020-12-30 13:47:46 120

原创 Python在工作中的应用5:数据去重

应用场景:业务给了一份包裹数据,让开发帮忙查询下里面哪些包裹数据还没有从上游回传:开发根据全量数据,通过sql查到已经收到的数据(只列出查到的数据,省略步骤):利用python找未收到的数据(此处将excel表中的数据直接拿出来了,因为上个步骤sql里有用到,通过数据做了些删减):#全量数据totalData=['BTL_001-40195902','BTL_001-40195905','BTL_001-40195909','BTL_001-40195910','BTL_001-40195933'

2020-11-09 14:37:00 121

原创 Python在工作中的应用4:数据合并

应用场景:产品给了一份数据,要通过数据中的【包裹号】查到包裹的【收货人,收货时间,发货人,发货时间】等数据,并拼接到现在有数据后面产品给的数据(省略部分细节):开发通过sql查到的包裹的【收货人,收货时间,发货人,发货时间】等数据:利用python将两张表的数据合并,并存起来:import requests,openpyxl#打开 产品给的数据wb1=openpyxl.load_workbook('c:\\Users\\btr\\Desktop\\运费明细6-8月(1).xlsx')sh

2020-11-04 19:07:09 231

原创 springboot学习13——springmvc拦截器解析

八、拦截器当请求来到DispatcherServlet时,它会根据HandlerMapping的机制找到处理器,这样就会返回一个HandlerExecutionChain对象,这个对象包含处理器和拦截器。这里的拦截器会对处理器进行拦截,这样通过拦截器就可以增强处理器的功能。1.拦截器的设计首先所有的拦截器都需要实现HandlerInterceptor接口。HandlerInterceptor源码package org.springframework.web.servlet;/**** imp

2020-06-12 17:51:46 164

原创 springboot学习12——springmvc(下)

五、数据模型Spring MVC允许控制器自定义模型和视图(ModelAndView),其中模型是存放数据的地方,视图则是展示给用户。先来讨论数据模型的问题。数据模型的作用是绑定数据,为后面的视图渲染做准备。首先看下Spring MVC使用的模型接口和类:在类ModelAndView中存在一个ModelMap类型的属性,ModelMap继承了LinkedHashMap类,所以它具备Map接口的一切特性,除此之外它还可以增加数据属性。在Spring MVC的应用中,如果在控制器方法的参数中使用Mod

2020-06-12 17:11:24 199

原创 springboot学习11——springmvc(中)

一、处理器映射Web工程使用Spring MVC,在启动阶段会将注解@RequestMapping所配置的内容保存到处理器映射(HandlerMapping)机制中去,然后等待请求的到来,通过拦截请求信息与HandlerMapping进行匹配,找到对应的处理器(它包含控制器的逻辑),并将处理器及其拦截器保存到HandlerExecutionChain对象中,返回给DispatcherServlet,这样DispatcherServlet就可以运行它们了。HandlerMapping:将请求定位到具体的

2020-06-12 15:56:05 161

原创 springboot学习10——springmvc(上)

Spring MVC定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理适配器(HandlerAdapter)等内容都是独立的。换句话说,通过Spring MVC很容易把后台的数据转换为各种类型的数据。例如,Spring MVC可以十分方便地转换为目前最常用的JSON数据集,也可以转换为PDF、Excel和XML等。加之Spring MVC是基于Spring基础框架派生出来的Web框架,所以它天然就可以十分方便

2020-06-11 23:16:59 670

原创 springboot学习14——整合shiro

在idea里建一个springboot项目代码结构:懒得建表,所有使用了mongodb1.application.propertiesserver.port=8090#在Spring Boot中配置mongodb:spring.data.mongodb.host=127.0.0.1#spring.data.mongodb.username=spring#spring.data.mongodb.password=123456spring.data.mongodb.port=27017s

2020-06-04 22:12:33 187

原创 springboot学习9——整合mongodb

文档数据库——MongoDB背景:Redis是一个每秒能够执行10万次以上操作的NoSQL。这个速度远超数据库,可以极大地提高互联网系统的性能,但是它有一些致命的缺陷,其中最为严重的就是计算功能十分有限,例如,在一个10万数据量的List中,我需要满足特定条件的元素在集合或者列表中,我们只有先把元素取出,才能通过条件筛选一个个得到想要的数据,这显然存在比较大的问题。虽然可以通过Lua脚本去完善,但这样开发者的工作量就大大地增加了。因此,对于那些需要缓存而且经常需要统计、分析和查询的数据,使用redi

2020-06-03 23:46:34 443

原创 springboot学习8——整合redis

redis与spring结合:https://blog.csdn.net/qq_39172525/article/details/106342853redis与与springboot结合:https://blog.csdn.net/qq_39172525/article/details/106343275redis与springboot结合(事务,管道,Lua)https://blog.csdn.net/qq_39172525/article/details/106343324...

2020-06-03 23:17:14 95

原创 Redis学习10——与springboot结合(缓存注解操作Redis)

使用Spring缓存注解操作Redis为了进一步简化Redis的使用,Spring还提供了缓存注解,使用这些注解可以有效简化编程过程。一、缓存管理器和缓存的启用Spring在使用缓存注解前,需要配置缓存管理器,如缓存类型、超时时间等。Spring可以支持多种缓存的使用,提供了缓存处理器的接口CacheManager和与之相关的类,使用Redis,主要就是以使用类RedisCacheManager为主。在Spring Boot的starter机制中,允许我们通过配置文件生成缓存管理器,它提供的配置

2020-05-25 22:20:56 320

原创 Redis学习9——与springboot结合(事务,管道,Lua)

事务:不多解释,保证数据的一致性。管道:在需要大批量执行Redis命令的时候,这样可以极大地提升Redis执行的速度。Lua语言:在高并发的场景中,往往我们需要保证数据的一致性,利用Redis执行Lua的原子性来达到数据一致性的目的。一、使用Redis事务在Redis中使用事务,命令组合是watch… multi…exec,在spring中可以使用SessionCallback接口来实现。watch:监控Redis的一些键;multi:开始事务,开始事务后,该客户端的命令不会马上被执行,而是存放

2020-05-25 22:09:29 441 1

原创 Redis学习8——与springboot结合

在Spring Boot中配置和使用Redis一、在Spring Boot中配置Redis配置Redis服务器,只需要在配置文件application.properties中加入:在Spring Boot中配置Redis:#配置连接池属性spring.redis.jedis.pool.min-idle=5spring.redis.jedis.pool.max-active=10spring.redis.jedis.pool.max-idle=10spring.redis.jedis.pool

2020-05-25 21:59:16 665 2

原创 Redis学习7——与spring结合

一、先加入关于Redis的依赖Spring Boot也会为其提供stater,然后允许我们通过配置文件application.properties进行配置。对映的Maven中依赖:引入spring-boot-starter-data-redis<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redi

2020-05-25 21:51:53 205

原创 springboot学习7——事务

Spring声明式事务的使用:使用AOP的思维,执行SQL的代码织入Spring约定的数据库事务的流程中。一、Spring声明式数据库事务约定在讲解Spring AOP时,只要我们遵循约定,就可以把自己开发的代码织入约定的流程中,减少大量的冗余代码,更加集中于业务的开发。@Transactional:通过此注解标注告诉Spring在什么地方启用数据库事务功能。可以标注在类或者方法上,当它标注在类上时,代表这个类所有公共(public)非静态的方法都将启用事务功能。此注解还允许配置许多的属性,如事务的

2020-05-25 21:34:46 402

原创 Python在工作中的应用3:数据截取

应用场景:有些数据每行都有一个标志位,我们通常需要标志位前或后的数据,此时就可以通过**split()**对数据进行截取需要处理的文件:现在用python截取标志位[nio-8080-exec-1] 后面的数据存入新的txt文件:file1=open('c:\\Users\\btr\\Desktop\\dd.txt','r',encoding='UTF-8')file2 =open('c:\\Users\\btr\\Desktop\\ee.txt','w',encoding='UTF-8')l

2020-05-22 21:00:44 470

原创 springboot学习6——整合MyBatis

整合MyBatis框架目前Java持久层最为主流的技术已经是MyBatis,它比JPA和Hibernate更为简单易用,也更加灵活。一、MyBatis简介MyBatis:基于一种SQL到POJO的模型,需要我们提供SQL、映射关系(XML或者注解)和POJO。其中SQL和POJO的映射关系,它提供了自动映射和驼峰映射等,使开发者的开发工作大大减少;MyBatis的配置文件包括两个大的部分:一是基础配置文件,一个是映射文件(可以使用注解)。1.引入关于MyBatis的starter<!-

2020-05-22 20:45:56 267

原创 springboot学习5——Datasource

一、配置数据源1.引入了JPA的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>Spring Boot使用Hibernate实现JPA,所以我们就可以在不使用任何配置数据库的情况下运行Spring Boot工程了

2020-05-22 20:34:44 901 1

原创 springboot学习4——AOP

一、AOP的概念Spring AOP:一种约定流程的编程,即按照一定的规则,将代码织入事先约定的流程中。可以简化代码,最为典型的应用实际就是数据库事务的管控。想像一下一个sql的执行过程:•打开数据库连接,对其属性进行设置;•执行SQL语句;•如果没有异常,则提交事务;•如果发生异常,则回滚事务;•关闭数据库事务连接。获取数据库事务连接、事务操控和关闭数据库连接的过程,都需要使用大量的try … catch … finally…语句去操作,而这些工作都可以通过AOP简化。AOP可以实现业务

2020-05-21 23:55:00 670

原创 springboot学习3——约定编程

这一章主要是通过约定编程来实现AOP,以此来了解AOP究竟是什么,全篇就是一个自己实现的AOP:1.接口HelloService:有一个sayHello的方法,其中的参数name是名字,这样就可以对该名字说hello了package com.springboot.chapter4.service;public interface HelloService { public void sayHello(String name);}2.实现类HelloServiceImpl:方法sayH

2020-05-21 23:34:37 215

wereader-master.zip

最近学习的文档,画的思维导图的集合,有操作系统,网络,netty,springboot,jvm等,没那么多字啊

2020-08-28

Charles_win.zip

1.打开即可使用,工具无需任何配置 2.手机需要设置手动代理,然后把电脑的ip配置上,端囗8888

2020-03-19

jd-gui-windows-1.6.3.rar

1.打开文件,点击jd-gui.exe 2.将编绎好的class文件直接导入,即可看到java文件

2020-03-18

redis压缩包,解压即可使用

解压后,运用redis-server.exe,然后再运行redis-cli.exe,在里面输入ping,如果下面出现pong,则redis启用成功

2017-12-10

redis与spring的整合

只是理解一下redis与spring整合的大概步骤,包括String,list,set,map格式的值

2017-12-10

spring与cxf整合开发

注意:1.服务器端被调用的类上要加注解@WebService,否则访问http://localhost:8080/cxf_spring_service/mm/cxf?wsdl时看不到方法和参数 2.在cmd中输入wsdl2java http://localhost:8080/cxf_spring_service/mm/cxf?wsdl报wsdl2java不是内部命令,需要配置path环境变量为D:\workspace\apache-cxf-3.2.1\bin和cxf_home变量为D:\workspace\apache-cxf-3.2.1(具体看下载地址)

2017-11-27

定时器的配置文件(两种方式:springmvc自带定时,Quartz与spring结合的定时)

定时器的配置文件(两种方式:springmvc自带定时,Quartz与spring结合的定时)

2017-11-24

SpringMVC文件的上传与下载(包括单一文件与多文件上传,两种下载方式)

SpringMVC文件的上传与下载(包括单一文件与多文件上传,两种下载方式)

2017-11-24

SpringMVC-httpclient

httpclient之用CloseableHttpClient发送post请求,有HTTP与HTTPS两种协议

2017-11-15

Redis-x64-2.8.2400

Redis-x64-2.8.2400

2017-08-10

空空如也

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

TA关注的人

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