Spring和Spring MVC基础知识——揭开Spring的面纱!

360影视 动漫周边 2025-05-22 15:31 2

摘要:可以认为Spring框架是目前Java企业级应用开发的基准框架,在项目开发中大量的应用都需要它,很多第三方框架也对其进行了集成,以方便开发者直接使用。在Web开发中,Spring MVC已经取代了老旧的Struts 2,占据了Web开发框架的大部分市场份额。本

可以认为Spring框架是目前Java企业级应用开发的基准框架,在项目开发中大量的应用都需要它,很多第三方框架也对其进行了集成,以方便开发者直接使用。在Web开发中,Spring MVC已经取代了老旧的Struts 2,占据了Web开发框架的大部分市场份额。本章主要讲解Spring和Spring MVC的基础知识。

Spring是一个著名的开源Java框架,是由Rod Johnson根据其著作ExpertOne-On-One J2EE Development and Design中阐述的设计理念和原型在2003年用Java开发实现出来的。Spring的核心理念是控制反转(Inversion ofControl,IoC)和依赖注入(Dependency Injection,DI)。Spring是为了解决企业级应用开发的复杂性而创建的框架,其优势是分层架构。Spring允许开发者根据项目的实际情况决定使用哪一个组件,同时为企业级应用程序的开发提供集成的基础框架,通过使用Spring内置的Java Bean来完成以前只可能由EJB完成的功能,这极大地简化了项目开发的复杂性。

Spring的用途不局限于服务器端的开发,从Spring实现的简单性、可测试性和松耦合的角度出发,任何Java应用都可以从Spring的设计理念中受益。

Spring的功能模块

Spring是一个典型的分层架构框架,它包含一系列的功能并被分为多个功能模块,如Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation和Test等。Spring的主要功能模块如图1.1所示。

Spring的模块很多,笔者只简要介绍图1.1中的几个重要模块。

Core模块:Spring框架的基本组成部分,它包括控制反转及依赖注入功能。

Beans模块:实现Spring对Bean的管理,包括自动装配机制等功能。

Context模块:用于访问项目配置及自定义对象,ApplicationContext接口是Context模块最重要的接口。

SpEL模块(Spring Expression Language,表达式语言模块):提供在运行时查询和操作一个对象的表达式机制。

JDBC模块:用于实现JDBC API的抽象层。

ORM模块:对象关系数据库映射抽象层,基于该模块,Spring框架可以方便地集成Hibernate和MyBatis。

OXM模块(XML消息绑定抽象层):基于该模块,使Spring框架能够支持JAXB、Castor、XMLBeans、JiBX和XStream。

JMS模块:Spring支持Java消息服务的重要模块,集成了JMS的项目即可实现消息生产和消费的功能。

Transactions模块:Spring的事务模块,Spring框架支持编程式和声明式的事务管理。

Web模块:即Spring MVC,提供了基于“模型—视图—控制器”的基础Web应用框架,可替代Struts 2。

Servlet模块:实现统一的监听器和面向Web应用的上下文,用以初始化IoC容器。

AOP模块:用于Spring面向切面的编程实现。

Aspects模块:Spring与AspectJ的集成,可以使用AspectJ来实现面向切面编程。

Test测试模块:支持JUnit和TestNG单元框架的集成,可以快速开展业务代码的单元测试。

Spring的7大优点

Spring是一个在企业级开发中使用非常成熟的框架,有些开发人员甚至认为离开了Spring就不能很好地完成项目的开发。这种说法虽然有些夸张,但也说明它在开发中的广泛应用。

使用Spring能加快项目的开发速度,能使业务代码逻辑更加清晰,也能让开发人员更关注业务的开发。简单来说,在项目中使用Spring具有以下7个优点:

非侵入式:基于Spring开发的应用的对象可以不依赖于Spring的API。

控制反转:IoC,指将对象的创建和管理交给Spring,只需要进行对象的注入即可,不用担心对象的创建和值的设置。

依赖注入:DI,配置后由Spring给属性赋值,而不需要再手动调用set方法给属性赋值。

面向切面编程(AOP):更加简单和高效地完成日志记录、权限判定及事务处理等功能。

容器化:Spring就是一个容器,用于管理应用对象的整个生命周期。

功能组件化:使用Spring框架,能快速集成第三方的组件,从而组合成一个复杂的应用,并且可以插拔式选择不同的组件。一站式开发:在Spring的基础上可以方便地整合第三方类库到项目中。

Spring的生态圈

Spring是一个基础框架,随着它的广泛应用又衍生出了很多其他框架,它们都有各自的功能,又能与Spring非常方便地集成,集成后能满足项目的各种业务需求,这极大提高了项目开发的效率。常见的框架如下:

Spring Boot:能够让开发者轻松地创建独立的基于Spring的生产级应用程序的框架,这也是本书的重点。

Spring Cloud:帮开发者快速构建一个分布式系统的框架。

Spring Data:为数据库的访问提供一个一致的基于Spring的编程模型,保留底层数据存储的框架。

Spring Cloud Data Flow:面向云计算和Kubernetes的基于微服务的流和数据批处理处理框架。

Spring Security:一个功能强大且高度可定制的身份验证和访问控制的安全框架。

Spring Session:在Web应用中管理用户会话信息的框架。

Spring AMQP:基于Spring框架的AMQP消息解决方案,该框架为消息的发送和接收提供一个模板方法。

Spring Web Service:该框架用于创建文档驱动的Web服务。

来源:程序员高级码农II一点号

相关推荐