01 Spring 初识
2022-11-19 23:19:32 7 举报
01 Spring 初识
作者其他创作
大纲/内容
全名:Spring Framework(Spring框架)
框架(Framework)是什么?
类和接口的集合
通过这些类和接口协调来完成一系列的程序实现
又叫开发中的半成品
个人或组织定义了一系列的类和接口,提前定义好了一些实现,开发人员在这些类和接口的基础上,更专注的完成业务的实现
简化开发过程,提高开发效率
Java框架可以分为三层:表示层,业务层和物理层
Strusts和Spring就是表示层和业务层框架的强力代表
架构(概念)的发展历程:
单一应用架构:
场景:网站流量小,只需一个应用,将所有功能都部署在一起,减少部署节点和成本
关键:用于简化CURD工作量的数据访问框架(ORM)
垂直应用架构:【涉及到spring】
场景:
访问量逐渐增大
单应用增加机器带来的加速度越来越小
方案:将应用拆成不相干的几个应用,提升效率
关键:用于加速前端页面开发的Web框架(MVC)
分布式服务架构:【涉及到spring】
场景:
垂直应用越来越多
应用间交互变多
方案:抽取核心业务作为独立服务,形成稳定的服务中心
关键:提高业务复用及整合的分布式服务框架(RPC)
流动计算架构(或叫面向服务的架构):【涉及到spring】
场景:
服务越来越多
容量的评估问题
小服务资源的浪费问题明显
方案:
增加一个调度中心,基于访问压力:
实时管理集群容量
提高集群利用率
关键:提高机器利用率的调度和治理中心(SOA)
Java主流架构技术(实现)演变之路
Servlet+JSP+JavaBean
诞生的起因:最早的时候前端页面都是静态的,多个用户之间不能互动,由此催生出了 Servlet + JSP + JavaBean
Servlet(Server Applet)+JSP:它是一个动态网页技术规范
Tomcat等web服务器都是它的实现,比如:Tomcat负责Servlet的创建、加载、销毁...一系列的实现
JavaBean:处理逻辑+操作数据库
它的技术分工、实现及示意图:
Servlet:接收请求、处理请求
JSP:负责展示的视图,展示给客户端
JavaBean:负责处理业务逻辑、操作数据库
MVC三层架构
它是一种设计模式 / 设计概念
它遵守单一职责原则
Model,交互数据的载体,如:用户、人
View,展示
Controller,接收、响应请求控制器
EJB
重量级框架
过多的接口和依赖,入侵性强
在使用上比较麻烦
SSH(Struts1/Struts2+Hibernate+Spring)
Struts2 已被弃用淘汰
存在漏洞较多,且官网会公布其漏洞
学习成本高,但用到的少
版本迭代少
SSM(SpringMVC+Mybatis+Spring)
灵活
学习成本低
SpringBoot
约定大于配置
大量减少配置文件
Spring介绍
官网:https://spring.io/projects/spring-framework#overview
spring5中文手册:https://github.com/DocsHome/spring-docs/blob/master/SUMMARY.md
Spring Framework:
介绍:
轻量级、模块化的Java开发框架
可以一站式构建企业级应用
解决企业级应用开发的业务逻辑层和其他各层的耦合问题
Spring负责基础架构,Java开发者可以专注于应用程序的开发
Spring为企业级开发提供的丰富的功能,底层都依赖于它的两个核心特性:
依赖注入(dependency injection, DI)
面向切面编程(aspect-oriented programming, AOP)
简略核心解释:
spring是一个轻量级的开源框架
spring为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题
spring是一个IOC和AOP的容器框架
IOC:控制反转
AOP:面向切面编程
容器:包含并管理应用对象的生命周期
Spring框架的优势:
1、Spring通过DI、AOP和消除样板式代码来简化企业级Java开发
2、Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩展到不同的领域,如Web服务、REST、移动开发以及NoSQL
3、低侵入式设计,代码的污染极低
4、独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once, Run Anywhere的承诺
5、Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦
6、Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用
7、Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
8、Spring的高度开发性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
Spring模块划分图
模块解释(由下至上):
Test:Spring的单元测试模块
Core Container:核心容器模块
Beans
Core
Context
SpEL:Spring表达式(expression)
AOP+Aspects:面向切面编程模块
Instrumentation:提供了class instrumentation支持和类加载器的实现来在特定的应用服务器上使用
Messaging:包括一系列的用来映射消息到方法的注解
Data Access/Integration:数据的获取/整合模块,包括了JDBC,ORM,OXM,JMS和事务模块
Web:提供面向Web整合特性
0 条评论
下一页