Spring概况和框架介绍

简介: Spring概况和框架介绍

1 spring介绍

spring框架 是一个轻量级的解决方案,并且提供了java企业级的构建服务,它使得java程序开发变得简单高效。

spring是模块化的设计,我们可以使用IOC容器和java工程一起使用(比如一些不依赖容器的服务,像任务管理,批处理服务),也可以仅引入Hibernate集成代码或JDBC抽象层访问数据库。spring框架支持声明式事务管理,通过RMI或Web services远程访问你的程序, 以及各种持久化数据的选项。


spring除支持java语言开发外,还支持Groovy和Kotlin。从Spring Framework 5.1开始,Spring需要使用JDK 8+ ,并为JDK 11 LTS提供开箱即用的支持。


spring是一个开源的框架,它拥有一些活跃的社区,如github, spring.io官网,这些社区提供各种应用场景的使用反馈,bug收集。


2 spring发展历程

在spring之前,EJB是当时最火热的方案,很多知名公司都是采用此方案进行项目开发。但是spring创始人Rod Johnson认为EJB过于臃肿,并不是每个项目都适用于EJB这种大型框架。在2001年10月份,他发表了《Expert One-on-One J2EE》,阐述了JAVA EE和EJB组件框架中的一些弊端,在这本书中,他提出了一种基于普通javabean和依赖注入更简单的方案。


2003年,Rod Johnson和他的伙伴开发了全新的框架spring 0.9


2004年3月份,spring1.0发布


spring1.0仅支持xml配置方式,通过xml定义bean和bean之间的引用。


2006年10月份,spring2.0发布


随着jdk1.5版本开始支持注解,spring2.x版本开始使用注解对bean进行配置,大大简化了xml的配置,提高项目的开发效率。


2009年12月份,spring3.0发布


spring3.x版本开始,spring开始提供javaconfig的方式,通过javaconfig可以快速配置spring及bean之间的依赖关系。


2013年12月份,Pivotal 宣布发布 Spring 框架 4.0。


2017 年 09 月,Spring 5.0 GA 发布。


spring5.x版本开始,提供对jdk8+的支持,webflux支持反应式编程模型,并且对kotlin进行全方面的支持。



3 spring带来的改变

spring是一个JAVA平台,可为JAVA应用程序提供综合性的基础服务设施。spring提供基础服务封装,开发人员可以更关心于业务及应用程序。 spring通过非侵入性服务,让你能够通过普通pojo对象构建企业级应用程序。 作为应用程序开发人员,通过spring受益的示例如下:


使Java方法在数据库事务中执行,而不必处理事务API。

使本地Java方法成为HTTP入口,而不必处理Servlet API。

使本地Java方法成为消息处理程序,而不必处理JMS API。

使本地Java方法成为管理操作,而不必处理JMX API。

4 spring 的架构分层


20200503110022368.png

在应用程序开发中,spring提供一套完整的方案,从http入口请求,到service业务处理,数据库持久层,spring作用于整个流程中。


20200503110849558.png


5 依赖注入

java应用程序,无论是嵌入式的应用程序,还是N层的应用程序,服务端程序通常是由应用程序的对象组成的,这些应用程序中的对象互相依赖。 在传统项目中,假如我们需要一个对象或者功能,通常都是由我们主动创建赋值,在这个过程中,可能需要加载比较复杂的上下文条件。这种在大型应用开发、迭代中是非常费时且麻烦的。 而依赖注入,则简化了这个流程,通过一个管理容器,达到了引用即创建,创建就可以引用。

public class Animal{
    private Cat cat;
    public Animal(Cat cat) {
        this.cat = cat;
    }
}

在这个代码中,cat对象是在Animal构造方法中引用,非Animal这个类本身创建,像这种非自己主动创建的引入,则称为依赖注入。


6 控制反转

控制反转是一种设计思想,而不是一种技术。 IOC是面向对象编程的一种升华,它能指导我们如何编写低耦合,健壮性,可复用的程序。


2020050311062114.png


如上图所示,类内部对外透明,调用者不需要关注类的内部逻辑,调用非通过IOC容器达到声明即调用的方式,降低了类对象创建,上下文加载的难度。


7 AOP面向切面编程

aop,即面向切面编程,通过预编译和运行时动态织入代码的方式来实现对程序统一维护、管理的一种技术。AOP是spring的一个重要内容,也是函数式编程的衍生,也是OOP的延续。 一般情况下,在业务程序中,如果想对业务程序进行监控,或者超时统计,异常处理等,可能需要在每个代码段中去添加这些处理逻辑。但是通过AOP可以对有共同特性的业务逻辑进行统一的监控,维护和管理,大大提高了开发效率,减少代码的冗余,提高了代码的维护性。


8 什么是框架

软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。(来源百度百科)


框架就是一套规范,开发人员在这个规范下协同开发,快速迭代应用程序及版本。


8.1 为什么要使用软件框架

  1. 开发效率快,软件框架就如搭好的框架房,开发人员在里面填充自己的功能和装饰即可
  2. 可靠性强,一个成熟的框架都是经过市场的验证
  3. 松耦合 通过框架,我们可以将业务代码抽离封装,实现一个松耦合的编程方式
  4. 可维护性强

8.2 spring下载

spring源码下载地址: https://github.com/spring-projects/spring-framework/tree/4.2.x


目录
相关文章
|
3月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
281 2
|
2月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
4月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
5月前
|
Java Spring
聊聊你对SpringBoot框架的理解 ?
SpringBoot是Spring家族中流行的子项目,旨在简化Spring框架开发的繁琐配置。它主要提供三大功能:starter起步依赖简化依赖管理,自动配置根据条件创建Bean,以及内嵌Web服务器支持Jar包运行,极大提升了开发效率。
175 0
|
2月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
137 8
|
3月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
423 1
|
5月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
600 0
|
4月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
819 0
|
5月前
|
NoSQL Java 数据库连接
SpringBoot框架
Spring Boot 是 Spring 家族中最流行的框架,旨在简化 Spring 应用的初始搭建与开发。它通过自动配置、起步依赖和内嵌服务器三大核心功能,大幅减少配置复杂度,提升开发效率。开发者可快速构建独立运行的 Web 应用,并支持多种数据访问技术和第三方集成。
|
6月前
|
Java API 网络架构
基于 Spring Boot 框架开发 REST API 接口实践指南
本文详解基于Spring Boot 3.x构建REST API的完整开发流程,涵盖环境搭建、领域建模、响应式编程、安全控制、容器化部署及性能优化等关键环节,助力开发者打造高效稳定的后端服务。
877 1