什么是spring框架?
spring是一个轻量级的,非侵入式的IOC,AOP容器框架。
spring模块划分
- Test模块:
- spring自带的单元测试模块
- 依赖jar包: spring-test
- Core Container核心容器ioc模块:
- 对应的模块:Bean、Core、Context、SpEL
- 依赖jar包:spring-bean, spring-core,spring-context,spring-expression
- AOP+Aspects 面向切面编程
- 依赖jar包: spring-aop, spring-aspects
- 依赖jar包: spring-aop, spring-aspects
- 数据访问
- 对应模块: JDBC,ORM,OXM,JMS,Transactions
- 依赖jar包:spring-jdbc, spring-orm 对象关系映射,spring- oxm对象与xml映射, spring-jms,spring-tx 事务相关
- web spring开发web应用对应的模块
- 对应的模块 web,servlet,websocket, portlet
- 依赖的jar包:spring-websocket,spring-web 原生web相关,spring-webmvc 开发web项目相关的库, spring-portlet 开发web的组件集成。
spring的优良特性
- 非侵入式
- 基于spring开发的应用中的对象,不依赖spring的API,相对于以前的依赖查找方式注入属性,并不需要组件类实现容器的特定API回调。
- 依赖注入
- spring根据配置文件来明确对象与对象之间的依赖关系,而不需要实现容器特定的回调API。
- 面向切面编程 AOP+Aspects
- 轻量级容器
- spring是一个轻量级容器,创建、管理应用对象的生命周期。
- 组件化
- spring使用简单的组件配置组合成一个复杂的应用。
- 一站式
- 在IOC,AOP基础上,整合多种优势的开源框架。
- 在IOC,AOP基础上,整合多种优势的开源框架。
IOC控制反转 与DI依赖注入
-
IOC( Inversion of control )控制反转
- 控制:指资源的获取方式,分为主动式和被动式。
- 主动式:需要的资源或者对象,都由自己去创建。(主动new)
- 被动式:需要的资源或者对象,都有容器去创建,设置和管理。(被动的接受需要使用的对象,不需要自己创建)
- 控制反转: 在组件类中,不需要使用new关键字来实例化依赖组件,而是在运行时由容器实例将依赖组件注入到组件中。因此,对依赖项的控制件转到容器,这种模式被称为控制反转,简称IOC。
- 控制:指资源的获取方式,分为主动式和被动式。
-
DI ( dependency Injection ) 依赖注入
- 容器根据配置或者注解知道哪个对象需要初始化成员属性;容器根据反射的形式,将容器中准备好的属性对象创建好,并且注入到对象的属性中,完成依赖注入。
- 容器根据配置或者注解知道哪个对象需要初始化成员属性;容器根据反射的形式,将容器中准备好的属性对象创建好,并且注入到对象的属性中,完成依赖注入。
spring中的IOC
todo 待完成