
Java
(次第花开)
记录为梦想而前行的过程。
展开
-
Mybatis启动流程
Mybatis启动流程 ----- (SpringBoot)初次查看源码,不足处请指教。在mybatis-spring-boot-autoconfigure包META-INF目录下,spring.factories文件中配置这样一段配置:org.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.mybatis.spring.boot.autoconfigure.MybatisAutoConfigurationSprin原创 2021-08-08 15:11:17 · 726 阅读 · 0 评论 -
SpringBoot自动装配
SpringBoot自动装配有一定经验的开发使用过纯Spring开发,相信Spring的配置文件一定让你很头疼。SpringBoot的理念是约定大于配置。通俗说,就是Spring Boot为我们提供了一套默认的配置,不需要我们再去手动配置XML配置文件,只有SpringBoot默认配置不满足要求时,才去修改配置。@1、SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documente原创 2021-08-07 15:13:57 · 168 阅读 · 0 评论 -
execute()与submit()的区别
execute()与submit()的区别execute()方法入参仅为 Runnable类型,submit()方法入参可为Runnable类型,也可为Callable类型;有两个方法的入参差异,由于Runnable的run()方法没有返回值,Callable的call()方法可以返回,可知execute()方法没有返回值,submit()方法有返回值。execute()方法的异常只能使用try、catch捕获,submit()方法不管提交的是Runnable还是Callable类型的任务原创 2021-07-12 11:33:59 · 212 阅读 · 0 评论 -
SpringBoot 中利用PostProcessor进行配置加密
SpringBoot 中加密某些配置Spring Boot does not provide any built in support for encrypting property values, however, it does provide the hook points necessary to modify values contained in the Spring Environment. The EnvironmentPostProcessor interface allows you原创 2020-06-11 10:35:14 · 915 阅读 · 0 评论 -
JVM中类的加载
JVM中类的加载1、类的加载过程1.1、加载 加载是指类加载器将类的class文件读入到内存中,并为之创建一个Class对象。1.2、链接 类被加载之后,系统生成一个对应的Class对象,接着将会进入链接阶段,链接阶段负责把类的二进制数据合并到JRE中。链接阶段可以细分为下面三个阶段:验证: 检验被加载的类是否有正确的内部结构,确保class文件的字节流中包含的信息符合当前虚拟机的要求,不会危害虚拟机的自身安全,主要包含四种验证:文件格式验证、元数据验证、字节码验证、符号引用验证,并和其他原创 2020-05-18 13:41:35 · 221 阅读 · 0 评论 -
浅谈对JVM的认识
浅谈对JVM的认识JVM简介JVM(Java Virtual Machine),俗称Java虚拟机。是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算功能来实现的,Java语言跨平台就是依赖于JVM实现。内部结构JVM内部主要由三部分构成:类装载器系统每一个Java虚拟机都有一个类加载器系统,负责加载程序中类和接口,并赋予唯一名称。运行时数据区主要包含:方法区:当JVM的类装载器加载.class文件,并进行解析,把解析的类型信息放入方法区。堆:虚拟机中只有一个原创 2020-05-17 10:39:03 · 233 阅读 · 0 评论 -
Spring核心IOC与AOP
Spring核心IOC与AOPSpring是一个非常优秀的开源框架,它的诞生解决企业级开发的复杂,框架的主要优势就是其分层架构,方便集成各种优秀的框架,在学习Spring的时候,接触到IOC与AOP这两个概念,下面一起来学习。1、IOCIOC全称Inversion of Control,中文翻译为控制反转,在Spring中所谓的IOC就是一个管理对象生命周期及对象依赖关系的容器,也称为IOC...原创 2020-04-25 16:30:29 · 177 阅读 · 0 评论 -
认识ReentrantLock
ReentrantLock在Java中通常使用锁有两种方式,一种是使用synchronized关键字,另一种就是Lock接口下的子类,ReentrantLock就是Lock的默认实现之一。ReentrantLock是可重入锁,也是独占锁。弥补synchronized的局限性,提供更加灵活的加锁方式。1、常见方法获取锁/** 获取锁 */void lock();/** 如果当前线程...原创 2020-04-22 15:51:05 · 181 阅读 · 0 评论 -
Java中的CAS及其缺陷
Java中的CASCASCAS全称是Compare-and-Swap,翻译中文是比较并交换,是并发编程中一种常用的算法。Java中concurrent包完全建立在CAS上。我们常见并发控制是使用锁,这是一种悲观的策略,假设每次对资源访问都会发生冲突,所以当有一个线程访问资源时,其他线程就必须等待。与之相反的时乐观的策略,假设线程对资源的访问是没有冲突的,同是所有线程执行都不需要等待,如果遇到冲...原创 2020-04-22 12:38:40 · 325 阅读 · 0 评论 -
Synchronized实现原理及锁升级
Synchronized实现原理及锁升级Synchronized是Java内置的机制,是JVM层面的,而Lock则是接口,JDK层面的。最初的Synchronized的性能效率比较差,但是随着版本的升级,Synchronized已经越来越强大。修饰普通方法,使用类的实例加锁,进入方法前需要获取当前类的实例锁;注意反编译后的内容,flags那一行多了ACC_SYNCHRONIZED标识,表...原创 2020-04-21 20:27:08 · 188 阅读 · 0 评论 -
Java中BIO、NIO、AIO简介
Java中BIO、NIO、AIO1、BIO(一个连接一个线程)Block IO,同步阻塞IO,基于字节流和字符流进行操作,服务器实现模式为一个连接一个线程,即客户端有连接请求的服务器端就需要启动一个线程进行处理,如果这个连接不做任何事就会造成不必要的线程开销(可以使用线程池来改善)。BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前...原创 2020-04-20 22:58:51 · 296 阅读 · 0 评论