Spring - 什么是spring?

article/2025/10/2 2:59:56

好久没更新博客了,今天小更一波。
学习java已经有一段时间了,今天将接触Spring框架技术。

什么是Spring?

spring 中文意思就是 春天,实际上spring 是真的给软件行业带来了春天。

使用spring的好处?

spring可以解决企业级开发的复杂性,让开发更加方便!

官网: https://spring.io/

实际上我们使用spring主要是为了让现有的技术更加容易使用,事实上spring自己本身也是一个大杂烩,整合了许多现有的技术框架比如我们接触的最多的SSH,SSM等等。

  • Spring 是一个轻量级免费的开源框架(容器)
  • Spring是一个轻量级的,非入侵式的框架!
  • IOC:控制反转
  • AOP: 面向切面编程
  • 支持事务处理,对框架整合的支持

一句话: Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的容器

SpringBean的生命周期:

  1. 实例化bean对象:反射的方式生成对象
  2. 设置对象属性(填充bean的属性):
    • populateBean(),循环依赖的问题
  3. 检查Aware相关接口并设置相关依赖:
    • invokeAwareMethod(完成BeanName,BeanFactory,BeanClassLoader对象的属性设置)
  4. beanPostProcessor前置处理:
    • 使用比较多的(ApplicationContextPostProcess,设置ApplicationContext等对象)
  5. 检查是否initalizingBean以决定是否调用afterPropertiesSet方法
  6. 检查是否配置有自定义的init-method:判断是否实现initalizingbean接口,如果有,调用AfterPropertiesSet方法,没有就不调用
  7. BeanPostProcessor后置处理对象:
    • Spring的AOP就是在此处实现的,AbstractAutoProxyCreator注册Destuction相关的回调接口
  8. 是否实现DisposableBean接口,调用DestoryMethod方法

Spring组成

在这里插入图片描述

核心容器(Spring Core)

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

应用上下文(Spring Context)

Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring面向切面编程(Spring AOP)

通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

JDBC和DAO模块(Spring DAO)

JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的代码数量,比如打开和关闭链接。

对象实体映射(Spring ORM)

Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,其中包括了Hibernate、JDO和 IBatis SQL Map等,所有这些都遵从Spring的通用事物和DAO异常层次结构。

Web模块(Spring Web)

Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以Spring框架支持与Struts集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

MVC模块(Spring Web MVC)

MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术,其中包括JSP、POI等,模型来有JavaBean来构成,存放于Model当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由c的事情。Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的环境。 Spring的核心要点就是支持不绑定到特定J2EE服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的J2EE环境,独立应用程序和测试环境之间重用。


http://chatgpt.dhexx.cn/article/WxO0gICP.shtml

相关文章

Spring和Spring Boot区别

spring和spring boot区别 二者主要区别是: 1、Spring Boot提供极其快速和简化的操作,让 Spring 开发者快速上手。 2、Spring Boot提供了 Spring 运行的默认配置。 3、Spring Boot为通用 Spring项目提供了很多非功能性特性。 一、Spring Boot和Sprin…

作为一个程序员,读不懂Spring就像读不懂对象的心?

???连读同事写的代码都费劲,还读Spring? 咋的,Spring 很难读! 这个与我们码农朝夕相处的 Spring,就像睡在你身边的媳妇,你知道找她要吃、要喝、要零花钱、要买皮肤。但你不知道她的仓库共有多少存粮、也…

【Spring源码这样读】-怎么阅读源码

做开发要不要读源码?如果你天天996,真心的不建议你去读源码(我是不介意做一个劝退师的)。读源码确确实实是一个费时费力的活,如果你每天都很忙,偶尔看一眼,想了解其中的奥秘,这很难办…

CRUD搬砖两三年了,怎么阅读Spring源码?

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 👨‍💻连读同事写的代码都费劲,还读Spring? 咋的,Spring 很难读&…

一、如何阅读Spring源码(全网最简单的方法)

学习Java最好最有效的方法是学习Spring,但是最笨最没效的方法也是学习Spring。 为什么这么说呢?道理其实很简单 A、Spring很庞大,很完善,也非常的底层,如果我们学会的Spring,那么也就掌握了很多的技术的核心…

【Spring】——Spring简单 读和取

前言 ❤️❤️❤️Spring专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring_冷兮雪的博客-CSDN博客 上期我们讲解了Spring的创建与使用,发现 将Bean 注册到容器 这一步中,如果Bean对象…

读取Spring配置文件的方法(Spring读取资源文件)

大厂必备!读取spring配置文件的两种方法,需要的朋友可以参考下。 第一种: 1.spring配置文件 2.读取属性方法 第二种: 直接读取方式: 通过spring配置方式读取: spring bean配置: // 编辑不易,spring框架系列的快要更…

php如何将时间戳,PHP如何将时间戳转换日期

PHP如何将时间戳转换日期 在php中可以使用“date()”函数将时间戳转换日期,该函数用于格式化一个本地时间日期,其语法是“date($format,$timestamp)”,其参数format表示日期格式,参数timestamp表示要格式化的时间戳。 代码实例&am…

php 时间戳 24小时制,php如何将时间戳转换成小时制

php将时间戳转换成小时制的方法:【date("Y/m/d H:i:s",1446634507)】。date()函数可以把时间戳格式化为可读性更好的日期和时间。 php将时间戳转换称24小时制 (推荐教程:php视频教程)date("Y/m/d H:i:s",1446634507) //2015/11/04 1…

php时间戳转换日期24,php时间戳怎么转换回日期

在php中,可以使用date()函数来将时间戳转换回日期格式。date()函数可把时间戳格式化为可读性更好的日期和时间格式,语法“date (format,时间戳)”;format参数规定转换后的时间戳格式,例“Y-m-d H:i:s”。 本教程操作环境&#xff…

php里日期转为时间戳_php时间戳与日期的转换

php时间戳与日期的转换 大家也许对PHP时间戳已经有所了解,那么我们如何应用它来获取具体的日期呢?我们今天来为大家介绍一下PHP时间戳获取当前时期的具体方式。 实现功能:获取某个日期的时间戳,或获取某个时间的PHP时间戳。 strto…

html 时间戳转换年月日,时间戳与日期的转换方法

php怎么将指定日期转换为时间戳 date(Y-m-d H:i:s, 1156219870); UNIX时间戳转换为日期用函数: date() 一般形式:date(Y-m-d H:i:s, 1156219870); 日期转换为UNIX时间戳用函数:strtotime() 一般形式:strtotime(2010-03-24 08:15:42); js 中日期 转换成时间戳 例如2013-08-…

常用的计算机C语言,计算机c语言基础知识

计算机c语言基础知识 C语言程序设计是高效计算机专业学生必修的一门基础课程,那么你对计算机c语言了解多少呢?下面是小编整理的计算机c语言基础知识,欢迎大家阅读参考。 计算机c语言的特性 C语言是世界上最流行、使用最广泛的高级程序设计语言之一。在操…

C语言基础知识总结

本文的目的是记录平时工作学习过程中学习到的C语言知识,由于单独一篇文章记录的话可能篇幅过少,因此置顶此文用作此用处,本文从2017-12-16开始记录,后续新增内容不单独列出时间,在MarkEditor中有相应的版本记录。 文件…

【必读】C语言基础知识大全

C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。 例1:计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整…

C语言基础知识概况

一、什么是C语言 就如人的语言分汉语英语,作用是实现人与人之间的交流相同。C语言是一门计算机语言。实现人与计算机交互的一种语言。C语言是一门广泛用于底层开发的编程语言 计算机的结构自上而下大概分为以下几层 应用软件QQ、网盘用户操作系统windows、Linux硬…

c语言基础知识 入门必看(保姆级教学)

🍓个人主页:bit.. 🍒系列专栏:Linux(Ubuntu)入门必看 C语言刷题 C语言基础 1.什么是C语言?为什么要学好C语言? 这是2022年球程序员使用计算机语言的排名:我们可以很清楚的看的c语言和c在将…

C语言基础知识入门(大全详解)

一、C语言基础知识入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语…

单片机C语言基础知识篇

本人是一名在校的即将大四的物联网专业学生,暑假期间无聊,想写一些东西,来记录之前学过的一些单片机的基础知识,由于记纸质笔记太过低效率了,而且也不看,所以想学着写博客来记录。后续会不定期推出Arduino篇…

C语言基础知识总结大全(建议收藏)

前言:C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭! 1 算法结构 一、顺序结构、选择结构、循环结构;二、循环结构又分为…