【Spring复习】Spring框架基础概要----第一篇

本文深入探讨Spring框架的七大功能模块,包括核心容器、上下文、AOP、DAO、ORM、Web和MVC。重点讲解IOC、DI和AOP,介绍对象管理、依赖注入和面向切面编程的原理与实践。同时,涵盖了声明式事务管理和Spring的全注解开发与Junit整合,是理解Spring框架不可多得的参考资料。
摘要由CSDN通过智能技术生成

本文篇幅较长,可以点击目录索引定位查看:

一、Spring的七大功能模块

二、Spring中常用功能详解

1、IOC:将对象的创建交由Spring容器来管理

2、DI:依赖注入,在创建时给容器中的对象注入属性值

3、AOP:面向切面编程,底层使用动态代理增强方法,提高代码复用性

4、声明式事务管理

5、全注解开发配置以及Junit的整合

6、xml配置文件约束和jar包依赖

参考及推荐


一、Spring的七大功能模块

图1  Spring框架模块图

 

图2  Spring框架模块图

 

Spring是基于Java平台的,如上面的两张图片所示,Spring为应用程序提供了全面的基础设施。也正是因为Spring专注于基础设施,这才使得程序猿们能够更好的致力于应用开发而不用过多的去关心底层框架的实现。总的来说,Spring是分层的Java  SE/EE应用一站式轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核,有效的对程序进行了解耦,同时也简化了开发和维护。

下面先对Spring框架的七大功能模块进行讲解:

1、核心容器(Spring  Core):

核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来生产和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。

2、Spring上下文(Spring  Context):

Spring上下文是一个配置文件,它继承BeanFactory(或者说Spring核心)类,向Spring框架提供上下文信息。Spring上下文包括企业服务,如:JDNI、EJB、电子邮件、国际化、校验和调度功能。

3、面向切面编程(Spring  AOP):

Spring集成了所有的AOP功能。通过事务管理可以使任意Spring管理的对象AOP化。Spring提供了用标准Java语言编写的AOP框架,它的大部分内容都是基于AOP联盟的API开发的。它的应用程序抛开了EJB的复杂性,但拥有传统EJB的关键功能。Spring  AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring  AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

4、Spring  Dao模块

DAO(Data  Access  Object)的思想是:将业务逻辑代码与数据库交互代码分离,降低两者的耦合。通过DAO模式可以使程序结构变得更为清晰,代码更为简洁。DAO模块提供了JDBC的抽象层,简化了数据库厂商提供的异常错误(不再从SQLException继承大量代码),大幅度减少代码的编写,并且提供了声明事务和编程式事务的支持。

5、Spring  ORM映射模块

Spring  ORM模块提供了对现有ORM框架的支持,各种流行的ORM框架已经做的非常成熟,并且拥有大规模市场,Spring没有必要开发新的ORM工具,它对Hibernate提供了完美的整合功能,同时也支持其他ORM工具。注意这里Spring是提供各类的接口(Support),目前比较流行的下层数据库封闭映射框架,如:MyBatis和Hibernate等。

6、Spring  Web模块

此模块建立在Spring  Context基础上,它提供了Servlet监听器的Context和Web应用的上下文。对现有的JSF、Struts等,提供了集成。Struts是建立在MVC这种公认好的模式之上的,Struts在M、V和C上都有所涉及,但它主要是提供了一个好的控制器和一套定制的标签库上,也就是它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,比如:层次结构分明,高可用性、增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化和日志等等。

7、Spring  MVC框架(Spring  WebMVC)

Spring  WebMVC模块建立在Spring核心功能之上,这使它能拥有Spring框架的所有特性,能够适应多种多视图、模板技术、国际化和验证服务,实现控制逻辑和业务逻辑的清晰分离。说说MVC在JSP的作用,这里引入了“控制器”这个概念,控制器一般由Servlet来担任,客户端的请求不再直接送给一个处理业务逻辑的JSP页面,而是送给这个控制器,再由控制器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。因此,这个Servlet控制器为应用程序提供了一个进行前-后端处理的中枢。一方面为输入数据的验证、身份认证、日志及实现国际化编程提供了一个合适的切入点;另一方面也提供了将业务逻辑从JSP文件剥离的可能。业务逻辑从JSP页面分离后,JSP文件蜕变成一个单纯完成显示任务的东西,这就是常说的View。而独立出来的事务逻辑变成人们常说的Model,再加上控制器Control本身,就构成了MVC模式。实践证明,MVC模式为大型程序的开发及维护提供了巨大的便利。 

结合上面的七大功能模块,对Spring框架的优点大致总结如下:

(1)Spring框架能有效的组织中间层对象。Spring框架能够有效地将现有的框架例如Struts2和Hibernate框架组织起来;

(2)Spring框架实现了真正意义上的面向接口编程,可实现组件之间的高度解耦,而面向接口编程是一种良好的编程习惯;

(3)Spring所秉承的设计思想就是让使用Spring创建的那些应用都尽可能少的依赖于它的API。在Spring应用中大多数业务对象都不依赖于Spring

(4)使用Spring构建的应用程序易于进行单元测试;

(5)Spring提高了代码的可重用性,它尽可能避免在程序中使用硬编码。Spring可以将应用程序中的某些代码抽象出来,然后在其他应用程序中使用这些代码;

(6)Spring为数据存取提供了一个一致的框架,简化了底层数据库的访问方式。


二、Spring中常用功能详解

1、IOC:将对象的创建交由Spring容器来管理

解耦:降低程序间的依赖关系,实际开发中应该做到编译期不依赖,运行时才依赖。

解耦思路:(1)使用反射来创建对象,避免使用new;

                    (2)通过读取配置文件,来获取要创建的对象的全限定类名。

单例和多例:

(1)单例对象:

创建:容器建立时立即加载;

销毁:随着容器中的销毁而销毁。

(2)多例对象:

创建:需要使用时再加载,延时加载;

销毁:销毁不由Spring负责,交给JVM垃圾回收机制,长时间不使用自动销毁。

IOC有两种方式将对象加入容器中去:

【1】通过applicationContext.xml文件进行配置,将对象加入容器中

(1) 默认无参构造创建的对象,也可设置为有参构造
	<bean id="runner" 	--->对象在容器中的唯一标识
	class="org.apache.commons.dbutils.QueryRunner" 	--->对象类的全限定类名
	scope="prototype"/>	--->对象类型,默认为 singleton 单例模式 ; 设置 prototype 为多例模式

(2) 通过工
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值