11.12 Spring开篇

11.12 Spring开篇

什么是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接口。包括HibernateMybatis等。还有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上下文模块:建立在CoreBean模块的基础上。集成Bean模块功能。ApplicationContext 是上下文模块的焦点

  • SpEL模块:提供表达式语言支持。包括访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。

AOP、Aspects、Instrumentation和Messaging

Core Container之上

  • AOP模块:提供面向切面编程实现,并能动态把这些功能添加到需要的代码中

  • Aspects模块:提供与AspectJ的集成。面向切面编程的框架

  • Instrumentation模块:提供了类工具的支持和类加载器的实现

  • Messaging模块:Spring 4.0 以后新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。

Test模块
  • 支持测试框架

    • Junit

    • TestNg

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/15819291.html