Spring学习笔记--Spring概述
Spring框架
Spring 是一个开源的轻量级的Java开发框架,以 Ioc(Inverse Of control:反转控制)和AOP(Aspect Oriented Programming: 面向切面编程) 为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多企业级应用技术,其还整合众多开源的第三方框架,逐渐成为最受欢迎的Java EE企业应用框架。
spring的两大核心:IOC和AOP
Spring框架的优势:
-
1. 方便解耦,简化开发
通过 Spring 提供的 IOC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。 -
2. AOP编程的支持
通过Spring的AOP功能,方便进行面向切面的编程,许多不容易用OOP实现的功能可以通过AOP轻松应付 -
3. 声明式事务的支持
可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。 -
4. 方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。 -
5. 方便集成各种优秀框架
Spring可以将降低各种框架的使用难度,提供了对各种优秀框架(Struts、 Hibernate、 Hessian、 Quart等)的直接支持。 -
6. 降低JavaEE API的使用难度
Spring对JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封转层,使这些API的使用难度大为降低。 -
7. Java源码中的经典学习范例
Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源代码是Java技术的最佳实践的范例。
Spring体系结构
-
核心容器(Core Container) 模块:
这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是 任何以spring为基础的应用的核心。Spring 框架建立在此模块之上,它使Spring成为一个容器。 -
数据访问及集成(Data Access/Integration)模块:
Spring 通过提供ORM模块,支持我们在直接JDBC之上使用一个对象/关系映射映射(ORM)工具,Spring 支持集成主流的ORM框架,如Hiberate,JDO和 iBATIS SQL Maps。Spring的事务管理同样支持以上所有ORM框架及JDBC。 -
WEB模块:
Spring的WEB模块是构建在application context 模块基础之上,提供一个适合web应用的上下文。这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参数的绑定到你的业务对象。它也有对Jakarta Struts的支持。 -
AOP(Aspect Oriented Programming)模块:
AOP模块用于发给我们的Spring应用做面向切面的开发, 很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共通性。这个模块将元数据编程引入Spring。- spring-aop: 面向切面编程,aop就是在某一个类或方法执行前后打个标记,声明在执行到这里之前要先执行什么,执行完这里之后要接着执行什么,插入新的执行方法。
- spring-aspects: 集成AspectJ, 主要是为Spring AOOP提供多种AOP实现方法。
- spring-instrument: 提供一些类级的工具支持和ClassLoader级的实现,用于服务器。
-
消息(Messaging)模块:
spring4.0以后新增了消息(messaging)模块,该模块提供了对消息传递体系结构的协议的支持。 -
测试模块(Test):
支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试