SpringMVC 的概念与入门

1.1 Spring 框架概述

1.1.1 Spring 的进化

第一阶段:Spring 1.x 基于XML的配置

第二阶段:Spring 2.x 基于注解的配置

第三阶段:Spring 3.x 基于XML的配置

第四阶段:Spring 4.x+Spring Boot基于自动配置

1.1.2 Spring 的功能

spring框架提供了IOC与AOP两大核心功能,及控制反转和面向切面编程。

1.控制反转

控制反转就是把各类的管理控制权交给容器,当需要使用某个类时,容器会自动管理该类实例并交给使用方使用,管理策略为,如果容器中无此类实例则自动创建实例并保存在容器中,如果你存在实例则直接获取该实例,对于使用方而言只需声明需要依赖的类,即可被自动注入,例如当A类需要使用B类实例时,只需要在A类中声明需要B类,框架就会自动将B类实例注入到A类中,以此实现各类之间的解耦,降低系统的复杂度。

举一个简单的例子,在某市内原本没有餐厅,想吃什么饭,只能自己准备材料自己做,每顿饭都需要耗费大量的时间后来开了家餐厅,想吃什么直接通过餐厅点餐即可,从而节省了食材准备烹饪几次后打扫的时间,这样就有更多的时间来做更多的事。

2.面向切面编程

例如需要在服务层的调用之前记录日志监控调用的情况,面向切面编程就是只对某一层进行纵切,在这一层的界面上添加各种公用逻辑,最终的目标是去除容易的代码达到逻辑复用的目的。

再举一个简单的例子在某市内有一家餐厅在餐厅创立初期,餐厅的门是手动门,每一位进入餐厅的客人都需要手动推开门,而在离开餐厅时还需要手动拉开门,后来餐厅进行了一次升级,手动门改成了自动门,门自动感应客人的进出并自动开关,客人感觉不到门的存在带来了极大的便利,这就类似于面向切面的结构,客人和餐厅是两层逻辑单元,原本上层的客人要调用下层的餐厅都需要先执行开门动作,而在两层的切面门上加上自动机制,可以自动在两层调用之间加入统一的逻辑,大大的简化的开发。

控制反转:实现各个模块之间的解耦,降低各模块的耦合度

面向切面编程:为某一层添加统一功能,减少代码的冗余

1.1.3 Spring 的模块

1.核心容器(Core Container)

spring-core: 提供 Spring 框架的核心支持,包括各种工具包与基本注解, 大多数其他模块都需要引入核心模块。

spring-beans: 提供 Spring 框架对Bean 生命周期相关的支持, 包括 BeanFactory 等组件。

spring-context: 提供Spring 上下文支持, 包括Applic-ationContext等组件

spring-expression: 提供 SpEL 表达式支持

2.AOP

为Spring 提供面向切面编程的支持, 包括ProxyFactory代理工厂等组件。

3.Web应用模块

spring-web: 提供对Web应用的支持, 用于 Web容器整合Spring框架,如Tomcat等。

spring-websocket: 提供对 WebSocket协议的相关支持。

spring-webmvc: 提供MVC框架, 与Spring框架无缝整合, 并结合spring-web为基于 Servlet容器的 Web应用提供MVC 支持。

spring-webflux: 为 Spring 提供基于 Reactive 响应式编程的 Web 框架。不同于spring-webmvc 基于 Servlet容器, spring-webflux 一般基于 Netty 等异步网络框架,  打破了原有Servlet的统治地位

4.数据访问集成(Data Access/Integration)

spring-jdbc: 提供对 JDBC 相关数据库操作的支持。

spring-tx: 提供对事务相关的支持。

spring-orm: 提供对对象关系映射的支持。

spring-oxm: 提供对对象 XML 实体映射的支持。

5.Messaging

为Spring提供各种消息队列支持,包括ActiveMQ、Kafka等消息组件支持的核心。

6.Test

提供Spring框架测试组件相关支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

康康峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值