Spring学习笔记1-简介

1. Spring是什么

Spring是分层的Java SE/EE应用的full-stack级开发框架

IoC(Inverse Of Control)AOP(Aspect Oriented Programming)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及义务层事务管理等众多的企业级应用技术.

还能整合开源世界众多注明的第三方框架和类库. 逐渐成为使用最多的Java EE企业应用开源框架

2. Spring的优势

  • 方便解耦,简化开发
    通过Spring提供的IoC容器, 可以将对象间的依赖关系交由Spring进行控制,避免硬编码缩成的国过度程序耦合

用户也不必再为单例模式型, 属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用

  • AOP编程的支持
    通过Spring的AOP功能, 方便进行面向切面的编程, 许多不容易使用的传统OOP实现的功能可以通过AOP轻松应付

  • 声明事务式的支持
    可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理

  • 方便程序的测试
    可以用非容器依赖的编程方式进行几乎所有的测试工作, 测试不再是昂贵的操作,而是随手可做的事情’

  • 方便集成各种优秀的框架
    Spring可以降低各种框架的使用难度, 提供对各种优秀框架(Struts, Hibernate, Hessian, Quartz等)的直接支持

  • 降低Java EE API的使用难度
    Spring对Java EE(如JDBC, Java Mail, 远程调用等)进行了薄薄的封装, 是这些API使用难度大为降低

  • Java源码是经典的学习范例
    Spring的源代码设计精妙, 结构清晰, 匠心使用, 处处体现着大师对Java设计模式灵活运用及对Java技术的高深造诣. 它的源代码无意是Java技术的最佳实践的翻译

3.Spring的体系结构

Spring学习笔记1-简介

3.1 耦合和解耦

  • 耦合—程序间的依赖关系
    包括:

    • 类之间的依赖
    • 方法间的依赖
  • 解耦—降低程序间的依赖关系
    实际开发中应该做到编译器不依赖, 运行时才依赖

解耦思路(JDBC解耦):

  1. 使用反射来创建对象, 避免使用new关键字
  2. 通过读取配置文件来获取要创建的对象全限定类名