一、spring简介
Spring框架,由Rod Johnson开发,是一个非常强大的反转控制(IOC)框架,以帮助分离项目组件之间的依赖关系。
可以解决对象创建以及对象之间依赖关系的一种框架。且可以喝框架一起使用:spring 与struts ,spring hibernate(起到整合)
二、基本概念
PO:persistent object,是在是orm框架中的entity,po的每个属性基本上都对应数据库表里面的某个字段。PO中应该不包含任何对数据库的操作
VO:value object,通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。
POJO:Plain Ordinary Java Object。简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。它并不继承任何类(继承Object),实现任何接口,只有属性跟get set方法。
IoC:Inversion of Control,控制倒转。对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。(对象的创建交给外部容器完成)
DI:Dependency Injection,依赖注入。就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动将它依赖的类注入给它。(处理对象的依赖关系问题)
注:关于DI和IoC的一个生动解析
IoC 和 DI区别:
IoC 解决对象创建问题【对象创建交给别人】
DI 在创建完对象后,对象的关系的处理就是依赖注入【通过ser方法依赖注入】
OOP: Object Oriented Programming,面向对象的程序设计。所谓“对象”在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。
AOP:Aspect-Oriented Programming,面向切面编程。
切面:简单来说,可以理解为一个类,有很多重复代码形成的类。
举例:事务,日志,权限;
组件/框架设计
侵入式设计
引入了框架,对现有的类的结构有影响,即需要实现或者继承某些特定类。
例如:struts
非侵入设计
引入了框架,对现有的类结构没有影响。
例如:Hiberbate 框架/Spring框架
二、Spring 模块
1)spring core:IoC容器。解决对象创建以及依赖关系
2)spring Web: 对web模块的支持:
可以与struts整合,让struts的action 创建交给spring
spring MVC
3) Spring Dao :spring对jdbc操作的支持【jdbcTemplate模块工具类】
4)spring ORM : spring 对ORM的支持:
既可以与hibernate整合
也可以使用spring的对hibernate操作的封装
5)spring AOP 切面(最难的模块)
6)spring EE spring 对javaEE其他的模块支持