思考
- 对象创建能否写死?
- 对象创建细节
- 对象数量
- action 多个 [需要维护成员变量]
- service 一个 [不需要维护成员变量]
- dao 一个 [不需要维护成员变量]
- 创建时间
- action 访问的时候创建
- service 启动的时候创建
- dao 启动的时候创建
- 对象数量
- 对象的依赖关系
- action依赖service
- service依赖dao
总结
- spring就是解决以上问题的!
- 简单来说,spring就是处理对象的创建的,以及对象的依赖关系的框架!
专有名词解释
- 组件/框架设计
- 侵入式设计:引入了框架,对象现有的类有影响,即需要实现或继承特定的类,如:Struts框架
- 非侵入式设计:引入了框架,对象现有的类没有影响,如:hibernate框架/spring框架
- 控制反转
- Inversion on Control,控制反转
- 对象的创建交个外部容器完成,
- 依赖注入
- Dependency injection
- 处理对象的依赖关系
- 区别
- 控制反转解决对象的创建问题,即所依赖的对象的创建交个第三方
- 在创建完对象后,对象的依赖关系的处理就是依赖注入,如通过set方法注入
- AOP
- 面向切面编程
- 切面,简单来说可以理解为一个类,由很多重复代码形成的类
- 应用举例:事务、日志、权限
Spring框架
- Spring提供了一站式的解决方案
- Spring-Core spring的核心功能:IOC容器,解决对象的创建及依赖关系 Spring-Web spring对Web模块的支持
- 可以与Struts整合,让Struts的action创建交给spring
- springMVC模式
- Spring-DAO spring对jdbc操作的支持,jdbcTemplate模板工具类
- Spring-ORM spring对orm的支持
- 可以与hibernate整合,
- 可以使用spring对hibernate操作的封装
- Spring-AOP 切面编程
- Spring-EE spring对javeEE其他模块的支持