初识Spring

一、Spring 框架基本理解

企业级应用:

        企业级应用指的是 大规模、业务复杂、性能和安全要求高、灵活多变 的大型 web 应用程序。

        Spring 框架是一款轻量级开发框架,它的核心思想IOC(控制反转)和 AOP (面向切面编程) ,为 JAVA 应用程序开发提供组件管理服,用于组件间的解耦,以及简化第三方 JavaEE 中间件技术的使用,是一个基础架构型的开发框架

第三方JAVA EE 中间件技术包括:

        JMS 、任务调度、缓存、ORM 框架等

Spring 框架包括:

        IOC 容器、Validation 数据校验、AOP 面向切面编程、Transactions 事务管理、Spring JDBC、Spring MVC 框架、以及各类第三方 JavaEE 中间件技术集成

二、Spring 框架由哪些模块组成?

Spring Framework 主要包括以下 5 个常用模块:

1.Core;核心模块

包括:IOC Container( IOC 容器)、Events(事件通知机制)、Resources(资源加载机制)、i18n(国际化)、Validation(数据校验)、Data Binding(数据绑定)、Type Conversion(类型转换)、SpEL(Spring 表达式)、AOP(面向切面编程);

2.Testing:测试模块

包括:Mock Objects(测试模拟对象)、TestContext Framework(测试框架)、Spring MVC Test(用于测试 Spring MVC)、WebTestClient(用于测试 WebClient 、Restful、Webflux 等);

3.Data Access:数据访问模块

包括:Transactions(事务管理)、DAO Support(统一的 Data Access Object DAO模式封装)、JDBC(Spring 对于 JDBC 的操作封装)、O/R Mapping(Spring 对于对象关系映射框架的封装,例如 Hibernate 等框架)等

4.Web Servlet:基于 Servlet 的 Web 应用开发

包括:Spring MVC (Spring 基于 MVC 模式设计封装的 Web 框架),WebSocket( Spring 集成 WebSocket,WebSocket是一个服务器与客户端双向通信的技术)等;

5.Integration:企业级系统集成模块(不同系统之间的交互集成)

包括:Remoting( Spring 用于在分布式系统中进行远程服务调用的通讯框架)、JMS( Spring 集成各类 JAVA 消息中间件、JAVA 消息服务【 Java Message Service】,例如 ActiveMQ 等)、Java Email(邮件发送)、Tasks Scheduling(任务调度);

三、Spring 体系结构

Spring Core

        Spring 框架最基础部分,提供 DI(依赖注入)特性

Spring Context

        Spring 上下文,提供 Bean 容器的集合

Spring AOP

        基于 Spring Core 的符合规范的切面编程的实现

Spring JDBC

        提供了 JDBC 的抽象层,简化了 JDBC 编码

Spring ORM

        对主流 ORM 框架(Hibernate、Toplink 等)进行集成

Spring Web

        为 Spring 在 Web 应用程序中的使用提供了支持

四、Spring 生态系统

Spring Boot

        简化产品级的 Spring 应用和服务的创建,简化了配置文件,使用嵌入式 web 服务器·,含有诸多开箱即用微服务功能

Spring Cloud

        微服务工具包,用于创建基于云计算架构的原生微服务应用

Spring Data

        是一个数据访问及操作的工具包,封装了很多种数据及数据库的访问相关技术,包括:jdbc、Redis、MongoDB、Neo4j等

Spring Security

        是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架

Spring AMQP

        消息队列操作的工具包,主要是封装了 RabbitMQ的操作

Spring Mobile

        是 Spring MVC 的扩展,用来简化手机上的 Web 应用开发

五、Spring IOC 的理解

        IOCInversion of Control控制反转)是 Spring 框架的核心思想之一,主要用于解耦。IOC是指将创建对象的控制权交给 Spring 框架进行管理。由 Spring 框架根据配置文件或注解等方式,创建 bean 对象之间的依赖关系。使对象之间形成松散耦合的关系,实现解耦

        控制:指的是对象创建(实例化、管理)的权利

        反转:控制权交给外部环境(Spring 框架、IOC 容器)

        SpringIOC(控制反转):主要用于解耦;高内聚,低耦合的编程思想

硬编码实现解耦:

        1.不要直接new对象,通过反射创建

        2.将需要创建的对象独立保存在资源文件中,动态加载

六、Spring IOC 容器的理解

        IOC 通常被理解为 IOC Container 容器,IOC 容器其实就是一个 Map,key 是每个 bean 对象的 ID ,valye 是 bean 对象本身。IOC 容器负责创建 bean 对象并管理 bean 的生命周期。并且根据配置好配置文件或注解,管理 IOC 容器中的每个 bean ,以及根据 bean 之间的依赖关系,完成 bean 之间的注入。

        IOC 容器属于 Spring Core 模块,用来创建和管理 Bean ,默认使用单例的方式将 bean 存储在 DefaultListableBeanFactory 类的 beanDefinitionMap 中(一个 ConcurrentHashMap 类型的 Map 集合);

        IOC 容器使用 ConcurrentHashMap 集合存储了 BeanDefinition 对象,该对象封装了 Spring 对一个 Bean 所有配置信息,包括:类名、属性、构造方法参数、依赖、是否延迟加载、是否是单例等配置信息;

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值