Spring概述

 

1、Spring是什么

  Spring是为了解决企业应用程序开发复杂性而创建的Java开源框架。Spring是一个轻量级的应用框架,具有控制反转(IOC)和面向切面编程(AOP)两大核心,常用于来整合其他框架使用。

2、Spring的功能

  Spring 是分层的 Java SE/EE full-stack 轻量级开源框架,以 IOC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核,使用基本的 JavaBean 完成以前只可能由 EJB 完成的工作,取代了 EJB 臃肿和低效的开发模式。

3、Spring的应用范围

  Spring 具有简单、可测试和松耦合等特点,不仅可以用于服务器端的开发,也可以应用于任何 Java 应用的开发中。

4、使用Spring的好处 

  1)方便解耦,简化开发(高内聚,低耦合)

    Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。

  2)方便集成各种优秀框架

    Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。

  3)降低 Java EE API 的使用难度

    Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度大大降低。

  4)方便程序的测试

    Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。

  5)AOP 编程的支持

    Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。

  6)声明式事务的支持

    只需要通过配置就可以完成对事务的管理,而无须手动编程。

5、Spring在三层架构中那一层

  在实际开发中,通常服务器端采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao)。


  Spring 对每一层都提供了技术支持,相当于一个大管家。

  表现层(web):提供SpringMVC,可以与 Struts2 框架整合。

  业务逻辑层(service):提供Spring的Bean管理、Spring声明事务,可以管理事务和记录日志等。

  持久层(dao):提供Spring的jdbc模板、Spring的ORM模板,可以整合JdbcTemplate 和  Hibernate 等技术。

6、Spring的下载

  方式1、直接访问下载地址下载(有时会404):http://repo.spring.io/release/org/springframework/spring/

  方式2、官网:https://spring.io/

  第一步

 

 

 

  第二步

 

 

 

  第三步

 

 

 

  第四步

 

 

 

  第五步

 

 

 

  第六步

 

 

 

  第七步

 

 

 

  第八步

 

 

 

7、Spring的开发包介绍

  

 

 

 Spring de 4个核心jar包

 

spring-core-3.2.13.RELEASE.jar 包含 Spring 框架基本的核心工具类,Spring 其他组件都要用到这个包中的类,是其他组件的基本核心。
spring-beans-3.2.13.RELEASE.jar 所有应用都要用到的,它包含访问配置文件、创建和管理 bean 以及进行 Inversion of Control(IoC)或者 Dependency Injection(DI)操作相关的所有类。
spring-context-3.2.13.RELEASE.jar Spring 提供在基础 IoC 功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI 定位、EJB 集成、远程访问、缓存以及各种视图层框架的封装等
spring-expression-3.2.13.RELEASE.jar 定义了 Spring 的表达式语言。
需要注意的是,在使用 Spring 开发时,除了 Spring 自带的 JAR 包以外,还需要一个第三方 JAR 包 commons.logging 处理日志信息

8、Spring的体系结构

  Spring 框架采用分层架构,根据不同的功能被划分成了多个模块,这些模块大体可分为 Data Access/Integration、Web、AOP、Aspects、Messaging、Instrumentation、Core Container 和 Test。

 

 

  1. Data Access/Integration(数据访问/集成)

  数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块,具体介绍如下。

    • JDBC 模块:提供了一个 JDBC 的抽象层,大幅度减少了在开发过程中对数据库操作的编码。
    • ORM 模块:对流行的对象关系映射 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的集成层。
    • OXM 模块:提供了一个支持对象/XML 映射的抽象层实现,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
    • JMS 模块:指 Java 消息服务,包含的功能为生产和消费的信息。
    • Transactions 事务模块:支持编程和声明式事务管理实现特殊接口类,并为所有的 POJO。

  2. Web 模块

  Spring 的 Web 层包括 Web、Servlet、Struts 和 Portlet 组件,具体介绍如下。

    • Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IoC 容器初始化以及 Web 应用上下文。
    • Servlet模块:包括 Spring 模型—视图—控制器(MVC)实现 Web 应用程序。
    • Struts 模块:包含支持类内的 Spring 应用程序,集成了经典的 Struts Web 层。
    • Portlet 模块:提供了在 Portlet 环境中使用 MV C实现,类似 Web-Servlet 模块的功能。

  3. Core Container(核心容器)

  Spring 的核心容器是其他模块建立的基础,由 Beans 模块、Core 核心模块、Context 上下文模块和 Expression Language 表达式语言模块组成,具体介绍如下。

    • Beans 模块:提供了 BeanFactory,是工厂模式的经典实现,Spring 将管理对象称为 Bean。
    • Core 核心模块:提供了 Spring 框架的基本组成部分,包括 IoC 和 DI 功能。
    • Context 上下文模块:建立在核心和 Beans 模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext 接口是上下文模块的焦点。
    • Expression Language 模块:是运行时查询和操作对象图的强大的表达式语言。

  4. 其他模块

  Spring的其他模块还有 AOP、Aspects、Instrumentation 以及 Test 模块,具体介绍如下。

    • AOP 模块:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
    • Aspects 模块:提供与 AspectJ 的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。
    • Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
    • Test 模块:支持 Spring 组件,使用 JUnit 或 TestNG 框架的测试。

 

posted @ 2021-05-30 16:32  mini9264  阅读(26)  评论(0编辑  收藏  举报