IOC容器设计学习
Spring简介:
- 以IOC与AOP为内核。分层框架。轻量级(不需要依赖其他软件,只需要JVM,容器环境)
Spring 的核心结构

每个模块对应一个Jar包。
1.4 IOC思想讲解
IOC和AOP不是Spring提出的。spring在技术上很好的把这两个思想实现
1)什么是IoC
Inversion of Control. (控制反转),这是一个技术思想。
描述的事情:Java开发领域对象创建的管理问题:
传统:A依赖B,会在A中new一个 B。
IoC思想的开发方式:不用自己new 对象了,由IoC容器帮助我们实例化对象,并且管理,我们需要使用哪个对象,去跟IoC容器要
我们丧失了创建管理对象的能力,得到了福利(不用考虑对象创建、管理和一系列事情)
控制:指的是对象穿件(实例化)的权利
反转:控制权交给外部,(Spring框架,IoC容器)

2)IoC解决了什么问题
解决了对象之间的耦合问题

如果DaoImpl改了名字,则左侧两处代码都要改。
改进:

3)IoC和DI的区别
IoC和DI。
1.6 AOP编程思想
OOP思想可以解决大多数代码重复问题,但是有一些是处理不了的,假如需要加入性能监控
public class Animal {
public void eat(){
long startTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis();
}
public void run(){
long startTime = System.currentTimeMillis();
long endTime = System.currentTimeMillis();
}
}
横切逻辑代码使用场景有限:事务控制、权限校验、日志打印

横切代码存在的问题:
- 横切代码重复
- 入侵业务逻辑
AOP解决,在不改变原有业务逻辑情况下,增强横切逻辑代码,避免代码重复
为什么叫面向切面编程:
原有业务代码不能动,只能操作横切逻辑代码。所以是面向横切逻辑
面:横切逻辑影响很多方法,每一个方法是一个点,组在一起是个面
1.7