首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
龙百万
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
Tomcat类加载
我们都知道:Java默认的类加载机制是委派模式,委派的过程如下。 servlet容器不应该完全信任它正在运行的servlet类。 servlet应该只允许访问web-inf/class和web-inf/lib中的类。 而tomcat自己定义加载器后,可以加入限定规则。 上图是t…
tomcat的总体设计
总的来说 就是接受一个请求,然后处理,最后返回。 从架构设计上来说,请求模块Connector与处理模块Container应该解耦。这样一个组件的变化不会影响另一个。 Connector负责开启Soket并监听客户端请求,返回响应数据。 Container负责处理具体的请求。 …
Java并发之CAS
在并发的世界里,有两种心态--乐观和悲观。乐观的人总认为这事不一定发生,侥幸地先试一把再说。悲观的人认为,哦,这件事可能会有这样那样的负面,不能轻易尝试。这些对应到我们java的并发策略就加锁和无锁。 啥?并发还有无锁这种操作?真有,而且效率相当地高。为什么效率高呢?因为加锁,…
ThreadPoolExecutor
任务要实现Runnable 或 Callabe 接口,Runnable不会返回结果,Callable可返回结果。 可通过工具类executors把Runable包装成Callable。 那么当我们submit Callable任务返回的是什么呢?答案是FutureTask对象。…
dubbo SPI
dubbo的所有功能都拆分并且抽象为interface,通过SPI查找这些interface的实现,并且通过url组合起来,就成了一个完整的rpc框架。SPI可理解为根据接口,找不同的实现类。 1.JDK中spi是一次性加载所有扩展,不能按需,有点浪费。 ExtensionLo…
HandlerMapping组件
HandlerMapping的作用是根据request找到相应的处理器Handler和Interceptors。 AbstractHandlerMapping是HandlerMapping的抽象实现,很显然用模版模式来设计。子类只需要通过模版方法提供一些初始值或者具体算法。 获…
Spring ApplicationContext启动流程
ApplicationContext(AC)和BeanFacory(BF)两者都是用于加载Bean的,但是相比之下,AC提供了更多的扩张功能。 那么究竟AC和BF多出了哪些功能呢?我们一起来一探原理。 ClassPathXmlApplicationContext 中可以将配置文…
ConcurrentLinkedQueue
前面我们分析了ArrayList的并发替代品CopyOnWriteArrayList。它使用了写时复制的策略来提高并发问题。 今天我们研究下LinkedList的并发替代品ConcurrentLinkedQueue. 并发链表。 要实现并发安全,一般2种策略。一种是加锁,一种是…
dubbo--服务本地暴露
我们利用idea的搜索功能,找到它的出处。 看到onApplicationEvent方法,我们要非常敏感的想到Spring。那好,我们看下该类的继承关系。 可以看到ServiceBean扩展来一系列Spring的扩展点。这里在容器刷新的时候就会开始暴露服务,这是我们的入口。 首…
Spring 事务源码
本小节的整体思路:1.注册一个advisor。2.每一个业务bean(比如UserService)初始化时都会调用后处理器,得到该bean的注解。然后将advisor逻辑应用进来。 在XML中配置tx:annotation-driven/ 。表示事务的开关。若没有配置,则spr…
下一页
个人成就
文章被点赞
14
文章被阅读
27,543
掘力值
526
关注了
16
关注者
6
收藏集
1
关注标签
17
加入于
2016-11-02