- 浏览: 4575 次
- 性别:
- 来自: 北京
最新评论
文章列表
Spring源码学习
- 博客分类:
- Spring
IoC容器
我们总结一下IoC容器初始化的基本步骤:《Spring技术内幕》P28
1.Resource的定位过程
这个Resource的定位指的是BeanDefinition的资源定位,它由ResourceLoader通过统一的Resource接口来完成,这个Resource对各种形式的BeanDefinition的使用都提供了统一接口。比如,文件系统中的Bean定义信息可以使用FileSystemResource来进行抽象;类路径中的Bean定义信息可以使用ClassPathResource来进行抽象。初始化的入口在容器实现中的refresh()调用来完成。不管是ClassPathX ...
Head First设计模式学习
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。(P24,Spring中在实例化对象的时候用到Strategy模式)。
观察者模式:定义了对象间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。(P51,spring中Observer模式常用的地方是listener的实现。如ContextLoaderListener、ApplicationListener)
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。(P91,100) ...
1.HashMap + ReentrantReadWriteLock
写时加WriteLock,读时加ReadLock,定时更新HashMap,适用于读取量大写入量小的场景。
2.LinkedHashMap,实现一个LRU缓存
继承LinkedHashMap,重写removeEldestEntry()方法,并做外部同步,比如EhCache的实现。
3.ConcurrentHashMap,实现一个FIFO的缓存
缓存实体可以用一个类似ConcurrentHashMap中HashEntry的结构,加上 volatile long livetime表示缓存时间
static ...
单例模式1:方法同步
public class Singleton1 {
private static Singleton1 uniqueInstance;
// 私有构造函数,防止外部类实例化
private Singleton1() {}
public static synchronized Singleton1 getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton1();
}
return uniqueInstance;
}
...
高德多线程题
1.主线程里创建N个子线程,等待N个子线程全部执行完后,打印每个子线程执行的时间。
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/**
...
[size=large][size=medium]服务端配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLoca ...