深入理解Spring IOC之扩展篇(五)、基于注解整合Spring框架 Spring

深入理解Spring IOC之扩展篇(五)、基于注解整合Spring框架

本篇讲的是如何将我们自己的业务逻辑和Spring框架整合起来,整合的方式主要采用的是注解,里面涉及到了多个知识点。 我们的目的是做出我们自己的注解,主要是标在接口上,当调用接口里相应的方法的时候,就会执行我们自己的逻辑。 对的,就是现在的MyBatis和Feign的整合方式,这种也是现在比较容易的,如果你业务里面xml用的多,你也可以结合xml来搞,拓展xml的文章我之前已经说过,你可...
阅读全文
JVM内存模型系列(堆、方法区以及对象和GC) Java

JVM内存模型系列(堆、方法区以及对象和GC)

上文已经介绍了JVM内存模型中线程私有的部分(虚拟机栈、本地方发栈、程序计数器),那么本篇文章就来探讨下JVM中线程共享的区域:堆、方法区 方法区 方法区是JVM规范中定义的一个逻辑内存,在JDK1.8以前对方法区的实现叫做“永久代”,然而在JDK1.8以后讲“永久代”废弃,改为“元空间”对其方法区进行实现,并且存储位置是本地内存,但是它依旧是JVM的逻辑区域。方法区存储了每一个类的结构信...
阅读全文
Unsafe介绍及CAS原理解析 编程技术

Unsafe介绍及CAS原理解析

0.Unsafe介绍 JavaDoc说, Unsafe提供了一组用于执行底层的,不安全操作的方法。那么具体有哪些方法呢,我画了一张图。 可以看到Unsafe中提供了CAS,内存操作,线程调度,本机信息,Class相关方法,查看和设置某个对象或字段,内存分配和释放相关操作,内存地址获取相关方法。我自己抽空对上述方法进行了注释, 你可以在 这里看到 。 那么如何使用Uns...
阅读全文
Java垃圾回收详解 编程技术

Java垃圾回收详解

1.GC介绍 什么是垃圾回收(GC)? 垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。 在 Java 虚拟机的语境下, 垃圾 指的是死亡的对象所占据的堆空间。 Java 虚拟机中的垃圾回收器采用 可达性分析 来探索所有存活的对象。它从一系列 GC Roots 出发,边标记边探索所有被引用的对象。 为了防止在标记过程中堆栈...
阅读全文
SpringBoot 原理深入及源码剖析 编程技术

SpringBoot 原理深入及源码剖析

SpringBoot 项目间接继承 spring-boot-dependencies,该文件对常用技术框架进行了统一版本管理,所以在SpringBoot 项目 pom.xml 引入spring-boot-dependencies管理的依赖文件不需要标注依赖文件版本号。引入 starter 就可以实现对应场景开发,而不需要额外导入相关依赖文件。 自动配置(启动流程) SpringBoot ...
阅读全文
Java中的动态代理 Java

Java中的动态代理

Java中的动态代理 说起动态代理,首先想到的就是 Spring ,在 Spring 中有两种动态代理方式: JDK 动态代理和 Cglib 动态代理。 JDK动态代理 JDK 动态代理是 Java 本来就有的一种代理方式,关键类是 java.lang.reflect.InvocationHandler 。 我们先创建一个简单的 SpringBoo...
阅读全文
JAVA并发(1)并发编程的挑战 Java

JAVA并发(1)并发编程的挑战

记得刚开始学JAVA的时候,在并发这一块最薄弱,只能做一些简单的多线程使用和对锁的使用,在其底层压根就没考虑过,最近抽空买了本JAVA并发编程艺术,要仔细认真的学习下。 上下文切换 一次上下文切换就是任务从保存到再加载的过程,因为处理器支持多线程执行代码的通过给每个线程分配CPU时间片来实现的,因为时间片非常短,所以CPU不停的切换线程执行,让我们感觉多个线程是同时执行的。 CPU通过时间片分...
阅读全文
Spring 注入对象处理过程 Spring

Spring 注入对象处理过程

❝ 其实生活中的坑,都是自己挖的,迷茫也是。愿我们内心坚定而且不失热爱,期待与你的共同进步。 ❞ 依赖关系的处理   上一篇文章中,通过 createBeanInstance() 方法,最终得到了 BeanWrapper 对象。再得到这个对象之后,在Spring中,对于依赖 关系的处理,是通过 BeanWrapper 来完成的。 1.自动装配与@Autow...
阅读全文
Loading...