10分钟详解Spring全家桶“7大知识点”

Spring框架自诞生以来一直备受开发者青睐 , 有人亲切的称之为:Spring 全家桶 。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案 。
很多研发人员把spring看作心目中最好的JAVA项目 , 没有之一 。
所以这是重点也是难点 , 工作中必须会 , 面试时肯定考 。
那么 , 今天花费10分钟 , 梳理Spring框架相关知识 。
Spring知识点-汇总
spring系列包含非常多的项目 , 可以满足java开发中的方方面面 。
先来看常用框架的知识点汇总 , 如图:

10分钟详解Spring全家桶“7大知识点”

文章插图
 
一、5个常用的spring框架
▌1.spring framework
也就是我们经常说的spring框架 , 包括了ioc依赖注入 , Context上下文、bean管理、springmvc等众多功能模块 , 其它spring项目比如spring boot也会依赖spring框架 。
▌2.spring boot
它的目标是简化Spring应用和服务的创建、开发与部署 , 简化了配置文件 , 使用嵌入式web服务器 , 含有诸多开箱即用的微服务功能 , 可以和spring cloud联合部署 。
Spring Boot的核心思想是约定大于配置 , 应用只需要很少的配置即可 , 简化了应用开发模式 。
【10分钟详解Spring全家桶“7大知识点”】▌3.Spring Data
是一个数据访问及操作的工具集 , 封装了多种数据源的操作能力 , 包括:jdbc、redis、MongoDB等 。
▌4.Spring Cloud
是一套完整的微服务解决方案 , 是一系列不同功能的微服务框架的集合 。Spring Cloud基于Spring Boot , 简化了分布式系统的开发 , 集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力 。比如sleuth提供了全链路追踪能力 , Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件 。config组件提供了动态配置能力 , bus组件支持使用RabbitMQ、kafka、Activemq等消息队列 , 实现分布式服务之间的事件通信 。
▌5. Spring Security
主要用于快速构建安全的应用程序和服务 , 在Spring Boot和Spring Security OAuth2的基础上 , 可以快速实现常见安全模型 , 如单点登录 , 令牌中继和令牌交换 。你可以了解一下oauth2授权机制和jwt认证方式 。oauth2是一种授权机制 , 规定了完备的授权、认证流程 。JWT全称是JSON Web Token , 是一种把认证信息包含在token中的认证实现 , oauth2授权机制中就可以应用jwt来作为认证的具体实现方法 。
二、Struts的具体作用
struts是曾经非常火爆的web组合ssh中的控制层 。我们知道web服务一般都采用MVC分层模型构建 , 就是model层负责内部数据模型 , controller负责请求的分发控制 , view层负责返回给用户展示的视图 。struts实现的就是其中控制层的角色 。
Struts采用Filter实现 , 针对类进行拦截 , 每次请求就会创建一个Action 。使用struts的SSH组合已经逐渐被使用springMVC的SSM组合代替 , 也就是Spring-MVC+Spring+MyBatis的组合 , 一方面原因是由于struts对几次安全漏洞的处理 , 让大家对struts的信心受到影响;另一方面 , springmvc更加的灵活 , 不需要额外配置 , 不存在和spring整合等问题 , 使用更加方便 , 所以建议以SSM框架的学习为主 。
三、常用的ORM框架
ORM就是对象关系匹配 , 是为了解决面向对象与关系数据库存在的互不匹配的问题 。简单来说 , 就是把关系数据库中的数据转换成面向对象程序中的对象 。
常用的ORM框架有Hibernate和MyBatis , 也就是ssh组合和ssm组合中的h与m 。
它们的特点和区别如下:
Hibernate对数据库结构提供了完整的封装 , 实现了POJO对象与数据库表之间的映射 , 能够自动生成并执行SQL语句 。只要定义了POJO 到数据库表的映射关系 , 就可以通过Hibernate提供的方法完成数据库操作 。Hibernate符合JPA规范 , 就是Java持久层API 。
mybatis通过映射配置文件 , 将SQL所需的参数和返回的结果字段映射到指定对象 , mybatis不会自动生成sql , 需要自己定义sql语句 , 不过更方便对sql语句进行优化 。


推荐阅读