代码编织梦想

说在前面

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已经将其集成好了。

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

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/first_M/article/details/112757280

深入理解SpringMVC、上下文层次、常用注解-爱代码爱编程

SpringMVC 概述  常用注解  Spring上下文                     1、SpringMVC 概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一。Spring3.0 后全面超越 Struts2,成为最优秀的 M

Spring 工具类之基本元素判断-爱代码爱编程

Spring 工具类之基本元素判断 实际业务开发中偶尔会遇到判断一个对象是否为基本数据类型,除了我们自老老实实的自己写之外,也可以借助 Spring 的 BeanUtils 工具类来实现 // Java基本数据类型及包装类型判断 org.springframework.util.ClassUtils#isPrimitiveOrWrapper

2021最新redis+zookeeper架构师必修课-爱代码爱编程

redis 介绍及NIO原理介绍【录播】redis 介绍及NIO原理介绍(144分钟) 02 redis的string类型&bitmap 【录播】redis的string类型&bitmap(136分钟) 03 redis的list、set、hash、sorted_set、skiplist 【录播】redis的list、set、hash、

【基础系列】ConfigurationProperties 配置绑定中那些你不知道的事情-爱代码爱编程

【基础系列】ConfigurationProperties 配置绑定中那些你不知道的事情 在 SpringBoot 项目中,获取配置属性可以说是一个非常简单的事情,将配置写在aplication.yml文件之后,我们就可以直接通过@Value注解来绑定并获取;此外我们也可以将一个结构化的配置,借助@ConfigurationPorperti

为什么@Autowired不能注入static成员属性-爱代码爱编程

为什么@Autowired不能注入static成员属性 静态变量是属于类本身的信息,当类加载器加载静态变量时,Spring的上下文环境还没有被加载,所以不可能为静态变量绑定值(这只是最表象原因,并不准确)。同时,Spring也不鼓励为静态变量注入值(言外之意:并不是不能注入),因为它认为这会增加了耦合度,对测试不友好。 这些都是表象,那么实际上Spri

Spring事务-爱代码爱编程

文章目录 事务的基本特性Spring事务管理方式编程式事务管理声明式事务管理基于注解的实现基于XML的实现事务注解注解说明事务传播机制事务失效场景事务代理 Spring事务的本质是,封装数据库事务,而数据库事务的本质则是基于数据库锁实现指定隔离级别的事务。 事务的基本特性 原子性(Atomicity): 事务是最小的执行单位,不允许分割。

从零开始:编写一个Web服务器---HTTP部分详细讲解以及代码实现(二)-爱代码爱编程

HTTP部分详细讲解以及代码实现(二) void process()的减负实现Web服务器中的有限状态机HTTP有限状态机从状态机如何理解从状态机流程如下:从状态机实现代码主状态机主状态机三种状态,标识解析位置do_request() 具体处理函数总结 本文介绍了Web服务器中的状态机 参考书籍《后台开发 核心技术与应用实践》

java注解式脱敏-爱代码爱编程

java注解式脱敏 简述代码讲解脱敏枚举类注解类编写脱敏工具类脱敏AOP的实现实战演练友情链接 简述 随着互联网时代普及,用户的信息越来越重要,我们开发软件过程中也需要对用户的信息进行脱敏处理活着加密处理,针对于比较繁杂的工作,个人来讲解如何实现注解式脱敏,支持静态调用和aop统一拦截实现脱敏或者加密返回。 代码讲解 脱敏枚举类    

架构:前后端分离-按照处理的逻辑内容划分-爱代码爱编程

思考起因 本来我是个全栈,自己做一个项目,这个时候并没有什么前后端分离的问题。 但是,因为要做一个更大的项目,这个时候就要做工作任务分离的一些事情,所以开始思考这方面的事情   什么是前后端分离 1、前后端分离,是依据代码运行的地方 按照这种理解,前端的作用,便是写页面。 JavaScript,HTML,CSS这些都是在浏览器端使用,所以这些都

数据结构与算法之KMP算法-爱代码爱编程

数据结构与算法系列 数据结构与算法之哈希表 数据结构与算法之跳跃表 数据结构与算法之字典树 数据结构与算法之2-3树 数据结构与算法之平衡二叉树 数据结构与算法之十大经典排序 数据结构与算法之二分查找三模板 数据结构与算法之动态规划 数据结构与算法之回溯算法 数据结构与算法之Morris算法 数据结构与算法之贪心算法 数据结构与

深入学习Java文件类File类(Demo详解)-爱代码爱编程

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步! 吾等采石之人,应怀大教堂之心,愿你们奔赴在

Springboot漫游日志(30)-爱代码爱编程

Springboot漫游日志(30) ConditionEvaluator注释构造方法ConditionContextImpl 遗留:【Binder】【logback日志】【加载properties或者yml】【解析环境变量key】【PathMatchingResourcePatternResolver】 【ClassPathBeanDe