- 博客(11)
- 收藏
- 关注
原创 SpringIOC中的后处理器
beanFactory后处理器,是为beanFactory而服务的,比如某些后处理器是为了增加各种对bean的定义而产生的,比较熟悉的有解析各种注解的后处理器、解析xml文件的后处理器。简单的来理解,bean后处理就是基于模版方法设计模式[^1]而产生的,是用于对bean的生命周期各个阶段进行扩展的。
2023-03-29 17:19:41
99
原创 BeanFactory是什么
以上是Springboot最简单的代码,通过在eclipse中通过快捷键“command+T”(两次)查看ApplicationContext的父类或接口,可以看到有个BeanFactory的接口,是最顶层的接口之一(继承Object)。EnvironmentCapable : 提供获取环境变量(包括application.properties配置的变量)的方法。ResourcePatternResolver : 提供了getResources方法(获取类路径下资源的方法)
2023-03-16 21:37:07
272
1
原创 JavaGC算法
文章目录分代收集算法引用计数算法优点缺点标记清除法缺点复制算法优点缺点标记压缩算法优点想要做好JVM参数调优,是需要对GC的机制以及算法有所了解,掌握GC原理后根据具体的需求对JVM进行优化,可以有效减少GC的次数,从而提高程序的效率。为什么要GC的次数多了会影响性能呢,因为每当GC执行是,所有的线程将会被暂停,这个暂停就是导致性能降低的关键因素,而且GC本身运行也是消耗资源的。垃圾回收的...
2019-06-14 22:07:18
287
原创 Lock的用法
文章目录LockCondition对象中的await()方法和Signal()Lockjdk1.5中,新增了java.util.concurrent的包,这个包主要是用于多线程场景的许多类。下面先介绍Lock,因为便于理解和学习使用,会对比着synchronized进行描述。先看看Lock标准的用法:// import java.util.concurrent.locks.Lock;/...
2019-06-14 16:40:47
467
原创 java线程之间的通讯
文章目录需求wait()、notify()notifyAll()方法需求现有一个需求,有一个共享变量初始值是0,这个变量分别有一个线程操作该变量递加,另外一个线程进行读取操作,并且每次变量的值变化都必须读取并打印显示。这就是非常常见的读写分离。下面我们用代码先编写一个读写分离的基本逻辑:package com.jwb;public class ThreadDemo4 { // 多线...
2019-06-14 16:36:53
127
原创 java线程安全问题
文章目录什么是线程安全下面举例说明线程安全解决办法synchronized的用法注意事项同步代码块同步函数静态函数同步线程死锁什么是线程安全线程安全问题的产生必须满足一下三个条件:多个线程多个线程共享同一个静态变量或者全局变量变量对共享变量做写操作一句话表达:当多个线程共享同一个静态变量或者全局变量时,并且对共享变量进行写操作,那么久很有可能产生线程安全问题。下面举例说明...
2019-06-14 16:29:59
140
原创 多线程的三大特性-java
文章目录三大特性原子性有序性可见性注意事项三大特性多线程的三大特性包括原子性、可见性、有序性。下面分别解释这三大特性。当程序运行时,如果没有满足这三大特性,就有可能产生线程安全问题。原子性原子性其实就是保证数据一致、线程安全一部分,既一个或者多个操作时,要么全部执行完中途不会被打断,要么就不执行。举例说明:package com.jwb;public class ThreadDe...
2019-05-31 13:49:06
1027
原创 SpringBoot之事件发布和监听——ApplicationListener.class
文章目录接口类ApplicationListener.class接口如何使用自定义事件对象源码解读实例化ApplicationListener的子类小结有个特殊的ApplicationListener的子类——DelegatingApplicationListener小结:发布事件本文将会通过解读SpringBoot的源码,从中学习如何使用springboot提供的事件机制,并了解其原理。最后会...
2018-12-03 11:12:47
1947
原创 SpringBoot之启动过程(1)——实例化SpringAppliction
文章目录从main方法开始解读SpringApplication实例化的时候,做了哪些事情?关于函数getSpringFactoriesInstances()通过getSpringFactoriesInstances()构建了哪些实体,到底是哪些?简单的说说ApplicationContextInitializer.class:ApplicationListener.classspring判断应用...
2018-11-30 11:38:14
740
原创 Springboot之应用初始化——ApplicationContextInitializer.class
Springboot源码解析之ApplicationContextInitializer.class——应用初始化1. 先介绍ApplicationContextInitializer.class2. 怎么用呢?2.1. 实现接口2.2. 将实现好的类配置到环境中2.2.1. spring加载默认配置中指定的实体类2.2.1.1. 小结2.2.2. 在项目配置(application.proper...
2018-11-29 18:09:00
927
2
原创 SpringBoot打印banner
SpringBoot打印banner可以打印什么样的banner源码分析可得知:看看printBanner(environment)方法内部SpringApplicationBannerPrinter 源码解读总结本文通过解读springboot启动源码中,看看banner是怎么执行打印,并了解一下可以怎么配置打印可以打印什么样的banner不说了,先上代码:代码截取了SpringAppl...
2018-11-29 11:38:23
1644
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人