spring是一个开元的轻量级框架,核心是IOC和AOP
什么是框架?
是完成一半功能的半成品,帮我们实现了部分功能但不是全部。
对整体项目全方位的支持,不具体负责某一个业务,但每一个业务都需要用到它,这就是框架。
轻量级:相对于重量级框架的一种设计模式;轻量级框架是非入侵性的,所依赖的东西非常少,资源占用也非常少,部署简单等。比较容易使用,而重量级框架恰好相反。
低侵入度:框架本身和项目**耦合度**很低,项目随时可以和框架分离(**框架的可移植性强**)
高侵入度:框架和项目耦合度很高,两者一旦分离项目就奔溃
IOC:Inverse of Control(控制反转)
控制反转不是一门技术,而是一种设计思想。就是将原本在程序中手动创建对象的控制权,转交给了spring框架来管理。
好莱坞法则:Don't call me,I'll call you!
IOC的底层原理是工厂模式。
AOP: Aspect Oriented Program (面向切面编程)
在面向切面编程的思想中,将功能分为核心业务功能和周边业务功能
>核心业务:登录,注册,修改数据,删除数据等
>周边功能:性能统计,日志,事务管理等
那什么是面向切面编程呢?
简单来讲就是:在不改变源码的基础上,核心业务功能和周边功能分别独立进行开发,但又编织在一起 即 用周边业务加强核心业务,但不会影响原来的代码。
AOP的底层原理是动态代理。