- 博客(101)
- 资源 (28)
- 收藏
- 关注
原创 Spring事务
Spring事务源码分析一、Spring事务管理基本概念1.1 什么是事务事务是逻辑上的一组执行单元,要么执行,要么都不执行1.2 事务的特性(ACID)什么是ACID4.2、newFixedThreadPool(int nThreads)4.3、newSingleThreadExecutor()4.4、newScheduledThreadPool(int corePoolSize)5、线程池的初始...
2020-02-18 22:26:39
428
原创 JVM(GC)垃圾回收机制
文章目录一、什么是垃圾二、GC垃圾回收主要作用的区域三、JVM是如何定位垃圾对象的3.1 引用计算法3.2 可达性分析法四、JVM垃圾回收算法4.1 标记清除算法4.2 复制收集算法4.3 复制整理算法五、JVM的分代回收算法5.1 新生代5.2 老年代六、常见的垃圾收集器6.1 新生代垃圾收集器6.2 老年代垃圾收集器6.3 其他垃圾收集器一、什么是垃圾没有任何引用指向的一个对象或者多个对象...
2020-02-11 19:58:22
471
原创 volatile底层原理分析
文章目录一、CPU多核缓存架构模型1.1、早期的计算机CPU架构模型1.2、现在的计算机CPU多核缓存架构模型1.2.1、内存间交互操作1.2.2、缓存不一致的解决方式1.2.1.1、总线加锁1.2.1.2、MESI缓存一致性协议 And CPU总线嗅探机制二、JMM(Java Memory Model,Java内存模型)2.1、JMM存在的问题三、volatile底层原理3.1、并发编程的三大特...
2020-02-05 14:42:50
867
1
原创 TreeSet源码分析(JDK1.8)
文章目录成员变量1、m2、PRESENT构造方法1、TreeSet():无参构造方法2、TreeSet(Comparator<? super E> comparator):指定比较器3、TreeSet(Collection<? extends E> c):在初始化时构造一组包含指定集合中的元素的TreeSet对象4、TreeSet(SortedSet s):在初始化时构造一...
2020-02-02 10:38:18
566
原创 TreeMap源码分析(JDK1.8)
文章目录成员变量1、comparator2、root3、size4、modCount构造方法1、TreeMap()2、TreeMap(Comparator<? super K> comparator)3、TreeMap(Map<? extends K, ? extends V> m)4、TreeMap(SortedMap成员变量1、comparator/** * 比较...
2020-02-01 22:48:48
912
原创 ThreadLocal源码分析
文章目录ThreadLocal静态内部类ThreadLocalMapThreadLocalMap成员变量ThreadLocalMap构造方法ThreadLocalMap(ThreadLocal<?> firstKey, Object firstValue)ThreadLocalMap(ThreadLocalMap parentMap)ThreadLocalMap静态内部类Entry静态...
2020-02-01 16:30:56
683
原创 redis RDB和AOF持久化机制
目录redis持久化一、RDB1.1. 什么是RDB持久化1.2. RDB自动触发持久化原理1.3. RDB手动触发持久化原理1.3.1. save1.3.2. bgsave1.4. RDB持久化的优点/缺点1.5. redis.conf RDB持久化配置详解二、AOF2.1. 什么是AOF持久化2.2. AOF运行流程2.3. AOF的优点/缺点2.4. redis.conf AOF持久化配置详...
2020-01-12 21:50:43
862
原创 (Spring源码分析)Spring Aop动态代理织入源码
文章目录织入的定义织入的种类调用代理方法invoke(proxy, method, args)invocation.proceed()invokeJoinpoint()@Before的处理类`MethodBeforeAdviceInterceptor`@After的处理类`AspectJAfterAdvice`@AfterRunning的处理类`AfterReturningAdviceInterc...
2019-12-07 16:17:19
738
原创 MySQL索引底层原理
文章目录什么是索引索引的类型从逻辑角度进行分类从物理角度进行分类从数据结构角度进行分类为什么InnoDB默认选用B+作为数据的存储结构主键索引的数据结构联合索引的数据结构主键索引的data数据为什么全在叶子节点上?什么是聚集索引和非聚集索引为什么建议使用InnoDB引擎的表使用整型的自增主键而不是UUID?为什么非主键索引的叶子节点中data数据存储的是主键值?什么是最左前缀原则为什么like模糊...
2019-11-24 14:22:22
1268
原创 (Spring源码分析)Spring Aop生成动态代理源码
文章目录doGetBean(name, null, null, false)createBean(beanName, mbd, args)切面信息的读取和缓存resolveBeforeInstantiation(beanName, mbdToUse)applyBeanPostProcessorsBeforeInstantiation(targetType, beanName)ibp.postPro...
2019-11-17 17:08:13
1179
原创 (Spring源码分析)Spring解决循环依赖源码分析
目录一、什么是循环依赖二、循环依赖的Demo三、Spring解决循环依赖的源码分析getBean(beanName)doGetBean(name, null, null, false)getSingleton(beanName)createBean(beanName, mbd, args)doCreateBean(beanName, mbdToUse, args)populateBean(bean...
2019-11-09 19:11:34
920
原创 (Spring源码分析)AnnotationConfigApplicationContext容器初始化 refresh()#finishBeanFactoryInitialization
目录3.3、finishBeanFactoryInitialization(beanFactory)beanFactory.preInstantiateSingletons()getBean(beanName)doGetBean(name, null, null, false)getSingleton(beanName)getSingleton(beanName, true)createBean(...
2019-11-09 14:35:57
837
原创 (Spring源码分析)AnnotationConfigApplicationContext容器初始化 refresh()#registerBeanPostProcessors
目录3.2、registerBeanPostProcessors(beanFactory)PostProcessorRegistrationDelegate.registerBeanPostProcessors(beanFactory, this)registerBeanPostProcessors(beanFactory, priorityOrderedPostProcessors)beanFa...
2019-11-09 14:05:57
451
原创 (Spring源码分析)AnnotationConfigApplicationContext容器初始化 refresh()#invokeBeanFactoryPostProcessors
目录3、refresh()3.1、invokeBeanFactoryPostProcessors(beanFactory)invokeBeanFactoryPostProcessors(beanFactory, beanFactoryPostProcessors)invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors...
2019-11-09 14:02:15
663
原创 (Spring源码分析)AnnotationConfigApplicationContext容器初始化 this() && register()
目录使用AnnotationConfigApplicationContext容器AppConfig配置类AnnotationConfigApplicationContext容器方法1、this()2、register(annotatedClasses)2.1、this.reader.register(annotatedClasses)2.1.1、registerBean(annotatedClas...
2019-11-09 13:47:39
1119
原创 JDK 8 Stream
Stream目录Stream的构造与转换包装类型StreamStream转换为其它数据结构map(映射转换)filter(过滤)foreach(for循环)reduce(规则计算)limit(截取前n个元素)skip(丢弃取前n个元素)sorted(排序)max/min(最大值/最小值)count(计数)groupingBy(分组)partitioningBy(划分)JDK 8中的Stream是...
2019-11-02 23:27:11
497
原创 JDK 8 LocalDateTime
LocalDate(获取年月日)创建LocalDate对象LocalDate localDate = LocalDate.of(2019, 10, 29); // 构造指定的年月日LocalDate localDate1 = LocalDate.now(); // 获取当前年月日获取年、月、日、星期// 获取年int year = localDate.getYear(); ...
2019-11-01 22:19:04
311
原创 (Spring源码分析)默认标签的解析
在上一节XmlBeanFactory容器分析中,在parseDefaultElement方法中是对默认的标签进行解析的默认的标签解析是在parseDefaultElement方法进行的/** * 对四种不同的标签进行处理 * * @param ele * @param delegate */private void parseDefaultElement(Element e...
2019-10-28 19:52:40
326
原创 (Spring源码分析)XmlBeanFactory容器
先来看一个简单使用Spring的DemoBuildTestpublic class BuildTest { @Test public void testBean(){ BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-context.xml")); TestBean testBean...
2019-09-11 20:01:31
709
原创 (源码分析)HashSet源码分析
目录成员变量构造方法HashSet():无参构造HashSet(int initialCapacity):指定初始化容量HashSet(int initialCapacity, float loadFactor):指定初始化容量和加载因子HashSet(Collection<? extends E> c):在初始化时构造一组包含指定集合中的元素的HashSet对象成员方法add(E e...
2019-08-30 10:16:27
633
原创 (源码分析)StringBuilder源码分析
目录成员变量构造方法StringBuilder():无参构造StringBuilder(int capacity):指定初始化容量StringBuilder(String str):字符串转换成StringBuilder成员方法append方法append(int i)append(long lng)append(char c)append(boolean b)append(float f)app...
2019-08-30 00:11:10
933
原创 (源码分析)StringBuffer源码分析
目录成员变量构造方法StringBuffer():无参构造StringBuffer(int capacity):指定初始化容量StringBuffer(String str):字符串转换成StringBuffer成员方法append方法append(int i)append(long lng)append(char c)append(boolean b)append(float f)append(...
2019-08-30 00:09:10
1468
原创 (源码分析)JDK1.7 HashMap源码分析
目录成员变量:构造方法Entry<K,V>put(K key, V value)get(K key)remove(Object key)containsKey(Object key)containsValue(Object value)keySet()values()entrySet()clear()size()isEmpty()说明: 当前HashMap的版本为JDK1.7.0.8...
2019-08-18 08:28:00
665
原创 (源码分析)JDK1.8 LinkedList源码分析
目录链表的特点成员变量构造方法add(E e)offer(E e)add(int index, E element)addFirst(E e)addLast(E e)push(E e)offerFirst(E e)offerLast(E e)remove(int index)remove(Object o)removeFirst()removeLast()pop()get(int index)ge...
2019-08-10 22:40:31
2179
原创 (源码分析)JDK1.8 ArrayList源码分析
目录ArrayList的特点成员变量构造方法add(E e)add(int index, E element)addAll(Collection<? extends E> c)addAll(int index, Collection<? extends E> c)remove(int index)remove(Object o)removeAll(Collection<...
2019-08-06 22:51:36
1879
原创 SpringBoot整合logback实现对日志的管理
logback是什么?logback是由log4j创始人设计的又一个开源日志组件,是log4j的升级版本优化了log4j存在的性能问题,SpringBoot默认是使用logback进行日志管理的logback能做什么?使用logback我们可以自定义控制台日志输出可以实现对不同日志不同级别打印到不同的文件中可以对日志进行归档保存,并定时删除使用logback来管理日志在ap...
2019-08-01 09:42:31
3376
原创 SpringDataJPA(四)多条件查询接口JpaSpecificationExecutor的使用
源码GitHub: https://github.com/291685399/springboot-learning/tree/master/springboot-springdatajpa04JpaSpecificationExecutor接口JpaSpecificationExecutor接口是单独存在的,完全独立的该接口主要是提供了多条件查询的支持,并且可以在查询中添加分页与排序...
2019-07-28 10:39:20
3984
原创 SpringDataJPA(三)SpringDataJPA自定义@Query查询方法
源码GitHub: https://github.com/291685399/springboot-learning/tree/master/springboot-springdatajpa02什么是自定义SQL查询SpringDataJPA支持关键字查询,继承Repository或者继承其子接口的接口中声明方法,方法名中含有关键字,即可根据方法名自动生成SQLSpringDataJPA支...
2019-07-24 21:21:50
5273
原创 SpringBoot整合dubbo(xml配置dubbo)
源码GitHub:https://github.com/291685399/springboot-learning/tree/master/springboot-dubbo02准备1、在服务器或者本地搭建好zookeeper,具体可参考文章:https://blog.youkuaiyun.com/qq_35620501/article/details/875193062、在服务器或者本地搭建好dubb...
2019-07-23 02:16:56
5268
原创 SpringDataJPA(二)SpringDataJPA自定义关键字查询
源码GitHub: https://github.com/291685399/springboot-learning/tree/master/springboot-springdatajpa02什么是自定义关键字查询SpringDataJPA支持自定义关键字查询,在方法中含有关键字,SpringDataJPA会为你自动生成SQLSpringDataJPA提供的关键字关键字方法名...
2019-07-22 18:35:13
4096
2
原创 Mybatis拦截器实现在SQL执行过程前后对SQL执行时间、SQL信息、Mapper信息进行日志打印
MyBatisConfig:@Configurationpublic class MyBatisConfig { @Resource private DataSource dataSource; @Value("${mybatis.mapper-locations}") private String mapperLocations; @Value(...
2019-07-18 20:46:14
5293
原创 SpringDataJPA(一)SpringDataJPA的简单使用
源码GitHub: https://github.com/291685399/springboot-learning/tree/master/springboot-springdatajpa01SpringDataJPA是什么?SpringDataJPA是Spring提供的持久层的解决方案,Spring Data JPA旨在通过减少实际需要的工作量来显着改善数据访问层的实现SpringDa...
2019-07-17 22:11:16
3585
原创 Git系列(七):在GitHub创建新分支
在GitHub上是不能创建分支的2.2.3 查看所有分支. git branch -a(查看所有分支包括本地分支和远程分支). git branch -r(查看远程分支).2.2.4 本地创建新的分支.git checkout -b branchname(直接新建一个分支然后切换至新创建的分支).就是创建加切换分支.等价于命令:git branch branchname+git ...
2019-07-15 12:44:44
1176
原创 SpringBoot拦截器实现登录拦截
SpringBoot拦截器可以做什么可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等SpringBoot拦截器实现登录拦截pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln...
2019-07-12 22:27:29
15853
1
原创 4种分布式session解决方案
cookie和session的区别和联系cookie是本地客户端用来存储少量数据信息的,保存在客户端,用户能够很容易的获取,安全性不高,存储的数据量小session是服务器用来存储部分数据信息,保存在服务器,用户不容易获取,安全性高,储存的数据量相对大,存储在服务器,会占用一些服务器资源,但是对于它的优点来说,这个缺点可以忽略了session有什么用在一次客户端和服务器为之间的会话中,客户...
2019-07-08 20:10:40
47956
6
原创 SpringBoot发送各种邮件
目录发送简单邮件发送html邮件发送携带附件的邮件发送携带静态资源的邮件发送html页面模板的邮件pom.xml:<dependencies> <!-- springboot --> <dependency> <groupId>org.springframework.boot</groupId> ...
2019-07-06 22:09:42
2031
项目pomtojar
2019-02-24
项目jartopom
2019-02-24
Spring Boot 2企业应用实战PDF原件+项目源码
2019-01-03
Java EE企业级应用开发教程(Spring Spring MVC MyBatis)(黑马程序员编著)
2018-12-07
权威指南Vue.js2 PDF原件(电子工业出版社,张耀春、黄轶、王静、苏伟著)
2018-12-07
MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社原件对应的资料源码
2018-12-06
Intellij IDEA的使用教程
2018-12-01
SourceTree安装包及破解教程(accounts.json也在里面)
2018-11-30
.NET Framework4.7.1(脱机版和联网下载版)
2018-11-30
深入浅出Spring Boot 2.x(杨开振著)项目代码
2018-11-25
深入浅出Spring Boot 2.x(杨开振著,人民邮电出版社)PDF原件
2018-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人