求阙厅

春有百花秋有月,夏有凉风冬有雪。若无闲事挂心头,便是人间好时节。

Spring 系列 容器

ApplicationContext 和 BeanFactory

Spring 系列 bean的初始化过程

Spring Ioc 容器功能非常强大,负责 Spring Bean 的创建和管理等功能。 Spring 管理单例模式 bean 的完整生命周期,对于 prototype 的 bean,Spring 在创建好交给使用者之后则不会再管理后续的生命周期。 过程 定义 和 注册 Bean 获取 Bean 定义和注册 bean 定义 BeanDefinition 并...

Spring 系列 Spring AOP

Target(目标对象):需要被代理增强的对象 Proxy(代理对象):目标对象被 AOP 织入 增强/通知后,产生的对象 Joinpoint(连接点):指那些被拦截到的点。在 Spring 中,这些点指方法(因为Spring只支持方法类型的连接点) Pointcut(切入点):指需要(配置)被增强的 Joinpoint。 Advice(通知/增强):指拦截到 Jo...

Spring 系列 IOC

Robert Martin 大师提出了面向对象设计原则—-依赖倒置原则: 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象。 抽象不能依赖于具象,具象依赖于抽象。 理解: 上层是使用者,下层是被使用者,这就导致了结果是上层依赖下层,下层变动了,自然就会影响到上层了,导致系统不稳定,甚至是牵一发而动全身。那怎么减少依赖呢?就是上层和下层都去依赖另一个抽象,这个抽象比...

Spring 系列 BeanFactory

DefaultListableBeanFactory 实现了 ListableBeanFactory 和 BeanDefinitionRegistry 接口,基于 BeanDefinition 对象,是一个成熟的 BeanFactroy。 BeanFactory 提供了根据 name、type 等获取一个 bean 对象的能力 ListableBeanFactory ...

Spring 系列 AspectJ

使用示例 1 2 3 4 5 6 7 8 9 10 public class HelloWord { public void sayHello(){ System.out.println("hello world !"); } public static void main(String args[]){ HelloWord h...

Spring 系列 ApplicationContext

常见的创建 Application 的方式有三种: FileSystemXmlApplicationContext ClassPathXmlApplicationContext AnnotationConfigApplicationContext 内部会调用refresh方法 refresh方法 bean 加载

Spring 系列 AOP

摘自:Spring AOP (AspectJ) AOP(Aspect-Oriented Programming,面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性。使用 AOP 之后可以把一些通用功能抽象出来,在需要用到的地方直接使用即可,这样可以...

Java基础 系列 ArrayList

线程不安全的数组容器。 ArrayList插入删除 性能取决于删除的元素离数组末端有多远,ArrayList 拿来作为堆栈来用还是挺合适的,push 和 pop 操作完全不涉及数据移动操作。 ArrayList 遍历和 LinkedList 遍历性能比较 遍历 ArrayList 要比 LinkedList 快得多,ArrayList 遍历最大的优势在于内存的连续性,CPU ...

Java基础 系列 SPI

问题:软件系统设计指标 有哪些?高性能、高可用、可伸缩性(可扩展性) 问题:系统里 有很多的 策略,比如 Dubbo 有很多负载均衡策略,如果实现 灵活配置?答:需要配置文件。 问题:如何 处理 配置信息,使 系统 执行 不同的 策略?答:反射或代理。 问题:反射和代理有什么区别?答:反射性能很低,正常程序的50-10倍。一般选代理。 问题:动态代理和静态代理有什么区别?静态代理 需要很多冗...