课件
https://github.com/geektime-geekbang/geekbang-lessons
大纲
Java 语言特性:反射、动态代理、枚举、范型、注解、ARM(Automatic Resourse Management)、lambda
设计思想和设计模式:OOP、IOC、DDD、TDD、GoF23
Java API 的封装与简化: JDBC、事务 Transaction、servlet、JPA、JMX、Bean Validation
JSR 规范的适配与实现
三方框架的整合:Mybitis 整合 hibernetes、Redis
其它:AOP、Spring EL 事务、Web 特性
玩游戏看颜色,学技术看版本
常见面试题
BeanFactory 与 FactoryBean 区别?
BeanFactory 是 IoC 底层容器
FactoryBean 是 创建 Bean 的一种方式,帮助实现复杂的初始化逻辑
Spring IoC 容器启动时做了哪些准备?
IoC 配置元信息的读取和解析、IoC 容器的生命周期、String 事件发布、国际化等
IOC 容器的职责
依赖处理: 依赖查找 依赖注入 生命周期管理:容器、托管的资源(Java beans 或其它资源) 配置:容器、外部化配置、托管的资源(Java beans 或其它资源)
依赖注入的四个方式
构造器注入
setter 注入
属性注入
接口注入
IOC 实现策略
依赖查找 依赖注入
依赖查找 VS 依赖注入
类型 | 依赖处理 | 实现便利性 | 代码入侵性 | API 依赖性 | 可读性 |
---|---|---|---|---|---|
依赖查找 | 主动获取 | 相对繁琐 | 侵入业务逻辑 | 依赖容器 API | 良好 |
依赖注入 | 被动提供 | 相对便利 | 低入侵性 | 不依赖容器 API | 一般 |
IOC 要服从以下几个设计目的:
实现与执行的任务之间解耦 关注设计的最终目标而不是它具体实现 其它系统知道这个模块怎样运作,但是却不依赖任何契约 替换一个模块的时候要防止边缘效应
https://en.wikipedia.org/wiki/Inversion_of_control
spring aop的理解 有几种实现方式
静态代理和动态代理
这次一定要看完