思考

  1. 对象创建能否写死?
  2. 对象创建细节
    • 对象数量
      • action       多个    [需要维护成员变量]
      • service      一个    [不需要维护成员变量]
      • dao           一个    [不需要维护成员变量]
    • 创建时间
      • action        访问的时候创建
      • service       启动的时候创建
      • dao            启动的时候创建
  3. 对象的依赖关系
    • 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其他模块的支持