Spring的IOC和AOP

来源:互联网 发布:大屏幕电子书 知乎 编辑:程序博客网 时间:2024/05/28 11:29

什么是Spring

1、Spring的核心是一个轻量级(Lightweight)的容器(Container)。
2、Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。
3、Spring提供AOP(Aspect-oriented programming)概念的实现方式。
4、Spring提供对持久层(Persistence)、事物(Transcation)的支持。
5、Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
6、Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。

Spring IOC

IOC的中文为控制反转:
简单的来说就是本身你该做的事,new对象。现在你不用做的,系统来做,系统直接给你对象

又称依赖注入:直接给你对象,不用new

本质是工厂模式
扫描包或者bean节点
是为了将对象放到容器中取管理,依赖注入和控制反转

Spring的类的scope有5种

Singleton 单例模式
Prototype 原型模式
Request 单请求模式
Session Session模式
GlobalSession 全局Session模式

Spring Bean的创建 :Spring源码

Spring Bean的创建时根据AbstractBeanFactory中的getBean创建

这里有protected和public和private的区别

protected和private 是不可被外部调用

protected可以被继承,可以被子类调用

Spring Bean的生命周期:

http://www.cnblogs.com/redcool/p/6397398.html

Spring Bean 缓存

private final Map<String, Object> singletonObjects = new ConcurrentHashMap(256);

Spring AOP

AOP为面向切面编程

日志、事务管理和安全这样的核心服务经常融入到自身具有核心业务逻辑的组件中就需要AOP编程的思想