重学Spring框架系列之——什么是Spring框架

YOLOv11 改进 - 特征融合 | 小目标检测救星:DySample动态上采样减少特征丢失 本文介绍了超轻量且高效的动态上采样器DySample与YOLOv11的结合,以解决传统上采样器工作负载大、应用场景受限的问题。DySample从点采样角度构建上采样,绕过动态卷积,使用PyTorch标准内置函数实现,无需定制CUDA包,能大幅减少参数、FLOPs等资源消耗。我们将DySample代码集成进YOLOv11。实验脚本显示,结合DySample的YOLOv11在多个密集预测任务中或表现出色。 阅读详情

说在前面

Spring框架算得上是java程序员必备的一项技能了。不论是早期的SSM或SSH架构,还是现在流行的SpringBoot加SpringCloud构建的分布式、微服务架构。Spring在其中扮演着不可或缺的角色,其重要性也是不言而喻的。

为了更好的工作和自身的提升,菜鸟又重新学习了一下Spring框架,在学习的过程中也有一些收获,从而想着通过文章将自己的学习过程记录下来。也希望可以帮助到有需要的人。如果文章中存在不合理或错误的地方也希望大家可以提出来,我会及时改正,希望我们可以一起进步。

既然我们要学习Spring框架,那么首要任务肯定是先了解什么是Spring?它能做什么?它有什么优势?它凭什么备受青睐?下面就让我们一起来探索一下Spring的奥义!

Spring基本介绍

Spring框架是由Rod Johnson发起的一个轻量级开源J2EE应用程序框架。

Spring框架是一个针对Bean的生命周期进行管理的的轻量级容器。通俗点来讲Spring就是一个容器,我们的bean都放到这个容器中,让Spring来进行管理。

Spring是一个基于模块化的框架,这就导致我们可以灵活的选择是使用其一部分的功能,还是全部使用,给开发者提供了更多的选择。

Spring是积极拥抱其它框架的,它可以很好的和其它框架进行整合,而不是一门心思想要取而代之。

Spring的核心

Spring有两大核心部分分别是:IOC和AOP。

ICO就是Inversion of Control的缩写,其含义就是“控制反转”。什么是“控制反转”呢?打个比方来说:结婚前你的工资完全由你来支配,想怎么花就怎么花。结婚后变了,你的钱要上交给你媳妇了,你想花的时候得申请。此时你对工资的控制转变了,由原来的你控制,变成了你媳妇控制。这就是“控制反转”。

将这种现象体现在编程中就是:把创建对象的过程交给Spring进行管理,我不再自己动手 new对象,而是从Spring的容器中获取。

AOP就是Aspect Oriented Programming的缩写,其含义就是“面向切面编程”。这个概念就比较抽象了,它的理念就是在不修改源代码的基础上进行功能的增强。我们可以通过下图来辅助理解AOP的含义。

在这里插入图片描述

Spring的特点

1、将Bean交由Spring管理可以方便代码解耦,并且还可以简化日常开发。

2、Spring框架对AOP编程有很好的支持,这样我们可以很方便的对程序进行权限管理、日志收集、运行监控等等。

3、Spring对Junit支持,可以很方便的进行代码的测试。

4、Spring还支持声明式事务,方便进行事务相关的操作。

5、Spring对javaEE的一些API进行了封装,通过使用Spring可降低对这些API的使用难度。

6、Spring是拥抱其它框架的我们可以方便的和其他框架进行整合。

Spring整体模块图

在这里插入图片描述

模块简介

Test模块:对测试的一些相关支持。  
Core Container模块:核心容器模块,Beans和Core是对IOC容器的支持,Context是上下文(环境)相关的支持,Expression是EL表达式的功能。  
AOP和Aspects模块:由这两个模块实现了Spring的AOP相关功能。  
Instrument模块:提供了类植入支持和类加载器的实现,可以应用在特定的应用服务器中。  
Messaging模块:消息传递模块。  
DataAccess/Integration模块:该模块主要用于和数据库交互。  
Web模块:主要包含了面向web的一些功能。

Spring的获取方式

日常开发中我们可访问https://spring.io/ 来获取spring的相关知识。

在这里插入图片描述

可以通过https://repo.spring.io/release/org/springframework/spring/ 这个网址来获取spring所有版本的代码。

在这里插入图片描述

如果是想要获取Spring的maven坐标的话可以通过https://mvnrepository.com/search?q=spring这个网址来查看。

在这里插入图片描述

如果你现在使用的是SpringBoot的项目其实是无需单独配置Spring的坐标的,因为SpringBoot已经将其集成好了。

今天的分享就到这里了,如果感觉“菜鸟”写的文章还不错,记得点赞、转发加关注呦!你们的支持就是我坚持下去的动力。文章哪里写的有问题的也希望大家可以指出,我会虚心受教。

在这里插入图片描述

abapGit 安装与初始化完整指南:从 on-premise 到 SAP BTP ABAP environment 的一条龙实践 本文为ABAP开发者提供abapGit从安装到团队协作的完整指南。内容涵盖社区版ZABAPGIT的on-premise安装、Eclipse ADT插件配置、BTP环境使用及常见网络问题处理。重点包括:获取最新构建的安装步骤、EN语言环境的重要性、ADT插件安装方法、以及如何实现on-premise与BTP间的代码迁移。文中特别强调企业环境下代理设置、证书配置等注意事项,并提供实际操作案例,如将RAP业务对象迁移到BTP环境。文末附有可复用的实施清单,帮助开发者快速落地abapGit。 阅读详情

相关推荐

在LangChain中使用DashVector进行高效向量检索

DashVector为需要处理高维向量数据的开发者提供了一种便捷且高效的解决方案。通过将其集成到LangChain生态系统中,您可以轻松实现复杂的语义搜索和数据分析功能。DashVector官方文档LangChain GitHub仓库有关DashVector的详细notebook示例。

sjufgwgfhoia的博客 455

Spring框架的详细学习

Spring 1.本章学习内容 1.Spring框架概要 2.IOC容器 3.AOP 4.jdbcTemplate 5.事务管理 6.Spring5新特性 7.Spring整合MyBatis 2.Spring概要 **概述:**它是轻量级的开源的JavaEE框架 轻量级:他的体积小,依赖的jar包比较少,并且不需要额外依赖其他的组件 开源:免费提供源代码 框架:可以简化我们构建软件的过程 **目的:**为了解决企业级应用的复杂性 核心: IOC:控制反转- 把创建对象的过程交给Spring

zhao_to的博客 809

Docker网络冲突?手把手教你解决Dify社区版无法访问172.18.0.0网段的问题

本文详细解析了在部署Dify社区版时,因Docker默认网段与局域网冲突导致无法访问172.18.0.0网段的问题。通过剖析Docker网络原理,提供了修改Docker守护进程默认地址池的根治方案,并介绍了在Compose文件中指定自定义网络等备选方法,帮助用户彻底解决网络冲突,保障服务稳定运行。

p8q9r0的博客 484

Spring IOC和AOP 原理彻底搞懂

Spring提供了很多轻量级应用开发实践的工具集合,这些工具集以接口、抽象类、或工具类的形式存在于Spring中。通过使用这些工具集,可以实现应用程序与各种开源技术及框架间的友好整合。比如有关jdbc封装的数据访问工具Spring JDBC,有关编写单元测试的spring test包以及spring-mock,有关访问动态脚本语言的Spring Script,另外还有发送邮件的工具Spring Ma

vampire2777的博客 528

别再到处找模型了!手把手教你用Xinference+Docker部署本地私有大模型(Llama2/Qwen实战)

本文详细介绍了如何使用Xinference和Docker部署本地私有化大模型(如Llama2/Qwen),涵盖硬件配置、模型管理、Docker部署及性能优化等关键步骤。通过实战案例,帮助开发者快速构建企业级AI推理服务,确保数据安全与高效运行。

weixin_28683065的博客 232

辉芒微教程第五篇《定时器0实现LED灯闪烁》

定时器定时器,一听就跟个闹钟似的,对于嵌入式定时器大部分的应用中,也的确可以这么理解,但是这只能肤浅地这么理解,实际其功能不仅仅是用来计数定时,但是对于我们这种8位单片机,这么理解就够了。

qq_41809823的博客 723

什么是 Spring 框架?

Spring 框架是一个开源的、轻量级的企业级应用框架,用于构建 Java 应用程序。Spring 框架是一个全面而灵活的框架,广泛应用于企业级 Java 应用程序的开发,为开发人员提供了一套丰富而强大的工具和功能,帮助构建可维护、可测试和可扩展的应用。Spring 使用控制反转(IoC)和依赖注入的原则,通过 Spring 容器来管理和注入应用程序中的组件,减少了组件之间的紧耦合。Spring 提供了一个 IoC 容器,它是 Spring 框架的核心组件之一,负责管理应用程序中的对象,进行依赖注入。

周祥平程序专栏 948

企业级AI平台架构设计:AI应用架构师的未来趋势

企业级AI平台是AI从“实验室”走向“生产线”的关键,而AI应用架构师就是这条“生产线”的总设计师。未来,随着生成式AI、边缘计算、自治式AI的发展,架构师的角色将越来越重要——他们不仅要构建技术平台,还要连接技术与业务,让AI真正创造价值。“不要做‘只会调模型的工程师’,要做‘能解决业务问题的架构师’。因为,真正有价值的AI,从来不是“最先进的模型”,而是“能落地、能复用、能创造业务价值的平台”。愿你在企业AI转型的浪潮中,成为那个“搭建桥梁的人”——连接技术与业务,连接现在与未来。

小程序开发 973

什么是Spring框架?

java全站知识点

weixin_46529694的博客 1884

Avalonia+ReactiveUI跨平台路由:从零到舞者,你的UI也能跨界起舞?

至此,你已掌握了Avalonia+ReactiveUI的跨平台路由精髓!你的应用现在能够优雅地在各个界面间穿梭,就像是在不同星球间跳跃的宇宙飞船。无论是初探跨平台开发的新手,还是经验丰富的老船长,这段旅程都能让你的UI编排技能更上一层楼。现在,是时候让世界见证你的跨平台魔术了!💫记住,每一次实践都是向着完美编舞迈进的一步,勇敢地在你的项目中尝试吧!如果在航行中遇到风暴,别忘了回来看看这篇指南,或者在评论区抛出你的救生圈,我们一起解决!🌊。

java专栏 1534

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2968

Spring框架(一):spring框架的简介

一、spring框架的概念 Spring是一个开源轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 二、sp...

yu1755128147的博客 3340

4-20mA电流信号转电压

该电路实现4-20mA电流信号转电压(0.44-2.2V)调理功能,采用两级运放设计:第一级LMH6642MFX进行11倍放大,第二级配置为缓冲器加二阶低通滤波。电路包含10Ω采样电阻、多级RC滤波和ESD防护,具有抗干扰强、功耗低(4mW)等特点,适配3.3V系统ADC采集。通过使能控制MOS管可实现节能模式,适用于工业自动化、环境监测等场景。设计合理平衡了信号精度与功耗,输出电压范围留有充足余量避免饱和。

qq_37999850的博客 303

【重学Spring系列】01 - 框架和环境搭建

文章目录1. 前言2. 1. 前言 2019下半年, 我急于求成,开始狂找源码分析的文章和书看, 比如 《Spring源码深度解析》 ,看的一趟糊涂!因为Spring真正复杂的是它的 思想、规范和设计哲学。万丈高楼平地起,我开始从简单的别的框架源码看,又积累了半年,现在继续重学Spring。 学习三件套(工具、代码、大脑) 先从环境搭建开始! 2. ...

听着日落的博客 204

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

重学Spring框架系列之——揭秘Spring两大核心之一的IOC容器

今天菜鸟和大家一起来探讨一下Spring两大核心之一的“IOC”。 IOC是什么 IOC是“Inversion of Control”的缩写,翻译过来就是“控制反转”。 我们先不深究其在Spring中的含义,先从字面上进行分析。打个比方来说:结婚前你的工资完全由你来支配,想怎么花就怎么花。结婚后变了,你的钱要上交给你媳妇了,你想花的时候得申请。此时你对工资的控制转变了,由原来的你控制,变成了你媳妇控制。这就是“控制反转”,本来属于你控制的事情,交由别人来控制,而你只在需要的时候进行获取就可以了。 相信通过这

first_M的博客 216

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

重学Spring框架系列之——设置Bean的加载时机

本文可能会涉及到一些bena的作用域相关的知识,如果对其不是特别了解的可以查看我上一篇文章。 bean的作用域为singleton和prototype时,其对应的加载时机是不同的。 通常情况下spring中bean为单例时,bean实例的创建是在加载配置文件或配置类时创建的,而bean为多实例时,bean实例的创建是在获取该实例时创建的。 通过文字描述可能比较抽象下面通过代码来查看一下。 注意:spring创建实例时默认调用的是无参构造,下面我们在无参构造中加上输出语句用于查看调用时机。 public c

first_M的博客 756

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

重学Spring框架系列之——设置Bean的作用域

Bean的作用域 在Spring中,默认情况下创建的bean都是单实例对象,当然也可以通过实际的需求进行修改。我们可以将这种操作视为设置bean的作用域。实现的方式有配置文件和注解两种形式,然而不论是哪种方式它们都对应了四种作用域。 这四种作用域分别为: singleton(默认值):表示创建的对象是单实例的。 prototype:表示创建的对象是多实例的。 request:表示一次请求生成一个实例。 session:表示一次会话生成一个实例。 注:在这四种作用域中,singleton和prototyp

first_M的博客 1304

重学Spring框架系列之——使用Spring创建自定义Bean的实例

本文将为大家讲解一下如何使用Spring创建自定义的类的实例,也就是将自定义的类交由Spring来管理。下面将会通过XML和注解两种形式来进行演示。 环境准备 为了方便,下面将采取Maven项目进行演示。 pom.xml中添加Spring环境的spring-context和用于测试的junit坐标。 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-contex

first_M的博客 576

重学Spring总结

重学Spring总结

北执南念的博客 1256

重学SpringBoot3-Spring WebFlux简介

随着微服务架构的流行和对高并发、低延迟系统需求的增加,响应式编程逐渐成为现代应用开发的主流方式之一。Spring Boot 3 引入了对响应式编程的强大支持,其中 Spring WebFlux 是一个重要的模块。本文将介绍 Spring WebFlux 的概念、特点以及它在实际应用中的场景和优势。

CoderJia的学习之路 5069

重学SpringBoot系列之Spring cache详解

重学SpringBoot系列之Spring cache详解为什么使用缓存为什么使用Spring Cache如何使用Spring Cache加依赖开启缓存加缓存注解测试常用注解@Cacheable缓存中spel表达式可取值@CachePut@CacheEvict@Caching@CacheConfig自定义缓存注解完整应用案例结合源码剖析注解的运行流程入口:基于AOP的拦截器@Cacheable的sync自定义一个keyGenerator使用其它缓存框架使用缓存带来的问题双写不一致占用额外的内存 为什么使用

m0_53157173的博客 3035

重学Spring5

1. Spring 1.1 简介 Spring : 春天 2002年,首次推出Spring框架的雏形 : interface21框架 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-

weixin_45607293的博客 217

重学SpringBoot3-Spring Retry实践

Spring Retry是Spring生态系统中的一个重要组件,它提供了自动重试失败操作的能力。在分布式系统中,由于网络抖动、服务暂时不可用等临时性故障,重试机制显得尤为重要。本文将详细介绍如何在 SpringBoot 3 应用中集成和使用 Spring Retry。

CoderJia的学习之路 5943

重学SpringBoot3-安装Spring Boot CLI

Spring Boot CLI(Command Line Interface)是 Spring Boot 提供的一个命令行工具,用于简化开发 Spring 应用程序的过程。借助 Spring Boot CLI,开发者可以通过 Groovy 脚本快速创建和运行 Spring 应用,而不需要像传统的 Spring 应用那样配置繁琐的 XML 文件或 Java 配置类。它适用于原型设计、快速实验以及小型应用的开发场景。在这篇博客中,我将详细介绍如何安装和使用 Spring Boot CLI,并演示一些基本用法。

CoderJia的学习之路 3356

重学SpringBoot3-集成Spring Security(四)

在现代应用开发中,安全性和数据管理是两大重要模块。Spring Security提供了全面的安全解决方案,而 Spring Data JPA 则简化了与数据库的交互。将两者结合,可以在保护应用的同时,轻松实现基于用户身份的访问控制、权限管理和安全的数据存储操作。 这篇博客将介绍如何在 Spring Boot 3项目中,整合 Spring Security 和 Spring Data JPA,以实现用户认证和基于数据库的授权机制。

CoderJia的学习之路 1918

重学 Spring(上)

在没有spring 之前,我们生成一个对象是这样子的问题:如果我们的userServiceImpl修改为UserserviceImplNew怎么办,这个地方就需要修改了,耦合度太高的问题,我们引入一个BeanFactory进行修改,让BeanFactory帮我我们生成userservice,这样不就可以解耦了吗,至少在controller中解耦了(即我们的测试类中)

HHH的博客 2210
上一篇: 菜鸟程序员都能看懂的“职责链模式”
下一篇: 重学Spring框架系列之——揭秘Spring两大核心之一的IOC容器
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值