什么是Spring?
概念:
-
JavaWeb
开发框架,包含了很多的框架。称为spring
全家桶
Spring framework
Spring MVC
Spring Boot
Spring Cloud
Spring Data
Spring Security等
Spring
框架是指:Spring framework
Spring的核心
分层
Java SE/EE
IOC(
Inverse of Control
)--->控制反转AOP(
Aspect Oriented Programming
)--->面向切面编程
IOC(Inverse of Control)---控制反转
概念:
-
将对象的创建权交给
Spring
去创建
AOP(Aspect Oriented Programming)---面向切面编程
概念:
-
封装多个类的公共行为
-
封装那些与业务无关,被业务模块共同调用的逻辑。---减少系统重复的代码,降低模块间的耦合度
-
解决日志、事务、权限等问题
Spring的思想
-
Java
类都是资源,资源都是类的实例对象(Bean
) -
IOC
容器是用来容纳、管理Bean
对象的 -
Spring
是一种基于Bean
的编程
服务器端体系架构
表现层(Web)
业务逻辑层(Service)
持久层(Dao)
Spring体系结构
Spring
根据功能不同划分多个模块:
上诉模块满足 一切企业级应用开发的需求 开发过程中可以选择性的使用需要的模块
Spring体系结构说明
Data Access/Integration(数据访问/集成)
Web模块
Core Container(Spring的核心容器)
AOP、Aspects、Instrumentation和Messaging
Test
Data Access/Integration层包括
-
JDBC
模块:提供了一个JBDC
的样例模板。消除了过长的JDBC
编码和事务控制。还能使用Spring
事务管理的好处 -
ORM
模块:提供对象-关系
映射框架集成的API
接口。包括Hibernate
和Mybatis
等。还有Spring
事务管理。无需额外控制事务 -
OXM
模块:提供Object/XML
映射的抽象层实现。将JavaBean
对象映射成XML
数据,或者反过来 -
JMS
模块:Java
消息服务,具体是指生产者-消费者模型。用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 -
Transactions
模块:支持编程和声明式事务管理
Web层包括
-
Web
模块:提供了基本的Web
开发集成特性。使用Servlet
监听器的IOC
容器初始化以及Web
应用上下文 -
Servlet
模块:提供Spring MVC Web
框架实现。Spring MVC
框架提供了基于注解的请求资源注入。 -
WebSocket
模块:提供简单的接口,用户只需要实现响应的接口就可以快速搭建WebSocket Server
实现双向通讯。 -
Portlet
模块:提供在Portlet
环境中使用MVC
实现,类似Web-Servlet
模块的功能
Core Container(Spring的核心容器)
组成部分:
-
Bean
模块:提供了框架的基础部分。控制反转和依赖注入 -
Core
模块:封装Spring
底层部分,资源访问、类型转换以及常用工具类 -
Context
上下文模块:建立在Core
和Bean
模块的基础上。集成Bean
模块功能。ApplicationContext 是上下文模块的焦点 -
SpEL
模块:提供表达式语言支持。包括访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。
AOP、Aspects、Instrumentation和Messaging
在Core Container
之上
-
AOP
模块:提供面向切面编程实现,并能动态把这些功能添加到需要的代码中 -
Aspects
模块:提供与AspectJ
的集成。面向切面编程的框架 -
Instrumentation
模块:提供了类工具的支持和类加载器的实现 -
Messaging
模块:Spring 4.0
以后新增了消息(Spring-messaging
)模块,该模块提供了对消息传递体系结构和协议的支持。
Test模块
-
支持测试框架
-
Junit
-
-