SSM框架之spring

spring框架是什么

没有spring的时代

曾经,在spring产生之前,大型java EE项目的开发都要使用一种基于javaEE标准的EJB容器技术来实现,这是原生j2ee标准下的一种规范化的技术。不过在早期的EJB2时代,有很多复杂的规范,很大程度上增加了程序开发和维护的复杂性,spring就是在这种情况下产生的。

java开发的春天

Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架由,Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。spring现在已经形成了一个完整的生态链,下面是一张spring内容结构图。

从中可以感受到一站式开发的概念,它可以直接涵盖了web开发中所能使用的各个方面,而它的核心部分,spring framework也包括了很多内容。

我们常用的就是IOC和AOP,以及web MVC部分,接下来会介绍IOC和AOP特性,在后面springMVC的文章中会展开介绍web MVC部分内容。

Spring专业术语

IOC容器与依赖注入

spring的一个重要的功能就是降低程序的耦合度,它通过一种叫控制反转(IOC)的方式来实现,当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。在这种环境下,所有的Bean都统一交给容器来管理,一旦有依赖关系,容器会为其注入相关依赖,这样一来,程序之间本身就不存在高度的耦合,从而可以更专注于业务的开发。

AOP面向切面编程

AOP是对OOP的一种补充,它相当于在传统的项目中进行一个垂直的切割,一些统一的日志,权限,事务等等管理在每一项业务下面都是统一的,而AOP就是把这些统一任务放到一个切面内,进行统一的管理,下面就是一个简单的图示。

在spring底层中,AOP是通过动态代理的方式来实现的,现在暂时我们不深入探讨它的原理,它的好处就在于通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责其它的系统级关注点,例如日志或事务支持。

spring容器初始化流程


从图中我们可以看出,spring启动首先要加载核心配置文件,spring的配置方式有三种,注解配置,xml配置和java类配置,spring4.X版本后开始鼓励使用java类配置,而早期在没有注解之前我们只能采用xml配置,现在比较流行的配置方式是xml加注解的方式。在xml文件中我们会配置所有的bean,以及注解标志bean的扫描信息,并且注入相关bean之间的依赖关系,当容器启动时候,容器会为bean创建相关实例并将它们放到容器中,一旦应用程序需要注入bean的时候,spring容器会自动为其注入。

简单的容器小程序

写一个简单的spring容器获取实例的小程序大概分以下几步

  1. 导入相关jar文件,编写spring配置文件
  2. 通过读取配置文件获取ApplicationContext对象
  3. 在ApplicationContext中获取类的实例,代替以往的new创建方式

spring的具体配置方式,jar包需求等等也都比较复杂,官方文档也有详细说明,在此依旧不做过多介绍,实际使用spring时候都使用maven管理项目,具体细节后面介绍SSM整合时候会有说明,下一篇会介绍springMVC的相关内容。

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!