道阻且长,行则将至

Scroll Down

关于依赖注入

概述依赖注入对于经常使用Spring我们在熟悉不过了,可以我们有没有想过它到底做了什么,以及为什么要这样做?所以今天我想写一篇关于依赖注入的文章,把依赖注入的细节讲清楚。依赖注入的细节首先依赖注入就是我们理解的字面意思,将一个对象的依赖进行注入。这里我举一个我们平时开发的例子来看看依赖注入是怎样的?

代理框架的一些思考

概述本文想要说明的是代理框架的如何实现,主要是基于Spring的AOP源码。Spring AOP的实现原理代理模式的一种应用就是持有目标对象的引用,并管理生命周期,并在此之上可以增加增强内容。注意,这里说的代理模式和装饰模式有本质上的区别,这种区别体现在应用上,两者相似度很高需要区分开。好了,这里重

Mybatis-设计原则

JDBC使用/** * JDBC编程六步 * 第一步:注册驱动 * 第二步:获取数据库连接 * 第三步:获取数据库操作对象 * 第四步:执行SQL语句 * 第五步:处理查询结果集 * 第六步:释放资源 */ public stat

动态代理模式技术最佳实践探讨

1 概述动态代理技术大家都很熟悉,我们日常使用的应用框架大部分都将动态代理技术作为核心技术实现,Proxy模式是一种能够有效的降低框架的侵入性的手段。参考大部分框架主要的实现手段一般是由系统使用方定义使用接口,然后框架通过动态代理技术对接口进行实现。在此基础上可以在被代理实现类的核心处理方法中定义。

多线程技术内容片段

读写锁跟互斥锁类似,也是申请锁的时候,如果不能得到满足则阻塞,但读写锁跟互斥锁也有不同,读写锁有3个状态:已加读锁状态已加写锁状态未加锁状态对应3个状态,读写锁有3个接口:加读锁,加写锁,解锁:加读锁:如果读写锁处于已加写锁状态,则申请锁的线程阻塞;否则把锁设置为已加读锁状态并成功返回加写锁:如果读

软件框架的要素

0、框架的定义框架通常是为了做某件事情,这件事情对用户透明。用户只需关注功能使用。1、结构化语言描述一些信息实现的方式通常有两种:(1)、XML(2)、注解2、框架中的数据结构用于框架运行时需要用到的关键数据结构,该数据结构中包含了描述某个实体的全部信息。3、框架运行的主流程就是完成一次运行的核心步

ThreadLocal的一些缺陷

概述本文主要讲述了ThreadLocal存储的一些缺陷,以及如何通过其他办法弥补这些缺陷。ThreadLocal的缺陷首先ThreadLocal的缺陷其实是因为开放定址法解决哈希冲突这种方式导致的。这种解决冲突的方式的优点是实现简单,对于key不多的情况下,性能也不存在问题。但是当数据量多起来(当然

ConcurrentHashMap笔记

插入元素的时候的加锁操作插入元素的时候会通过tryLock尝试获取锁,如果获取失败那么会进入自旋状态,直到自旋的次数达到阈值,这时候会通过lock方法进行阻塞当前线程。扩容的时候的lastRun是什么意思lastRun代表着这个链表从最后的一个节点开始往上直到计算idx不一样的为止。这个目的是为了加

Java虚拟机-线程安全与锁优化

线程安全当多个线程同时访问一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。线程安全的实现方法1、互斥同步互斥同步是一种最常见也是最主要的并发正确性保障手段。同