第一章节 spring 概念与体系结构

news/2024/12/22 17:17:39/

1、Spring 概念

Spring 是 Java EE 编程领域的一款轻量级的开源框架,目标就是要简化 Java 企业级应用程序的开发难度和周期。

1.1、广义

Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security

项目名称描述
Spring DataSpring提供的数据访问模块,对 JDBC 和 ORM 提供了很好的支持。通过它,开发人员可以使用一种相对统一的方式,来访问位于不同类型数据库中的数据。
Spring Batch一款专门针对企业级系统中的日常批处理任务的轻量级框架,能够帮助开发人员方便的开发出健壮、高效的批处理应用程序。
Spring Security前身为 Acegi,是 Spring 中较成熟的子模块之一。它是一款可以定制化的身份验证和访问控制框架。
Spring Mobile是对 Spring MVC 的扩展,用来简化移动端 Web 应用的开发。
Spring Boot是 Spring 团队提供的全新框架,它为 Spring 以及第三方库一些开箱即用的配置,可以简化 Spring 应用的搭建及开发过程。
Spring Cloud一款基于 Spring Boot 实现的微服务框架。它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来,并通过 Spring Boot 的思想进行再封装,屏蔽调其中复杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。

1.2、侠义

Spring Framework
Spring 有两个核心部分: IoC 和 AOP。

核心描述
IOCInverse of Control 的简写,译为“控制反转”,指把创建对象过程交给 Spring 进行管理。
AOPAspect Oriented Programming 的简写,译为“面向切面编程”。AOP 用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP 还解决一些系统层面上的问题,比如日志、事务、权限等。

1.3、三层架构

在实际开发中,服务器端应用程序通常采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao)。
Spring 致力于 Java EE 应用各层的解决方案,对每一层都提供了技术支持。

  • 在表现层提供了对 Spring MVC框架的整合;
  • 在业务逻辑层提供了管理事务和记录日志的功能;
  • 在持久层还可以整合 MyBatis、Hibernate 和 JdbcTemplate 等技术,对数据库进行访问

2、Spring Framework 的特点

Spring 框架具有以下几个特点。

2.1、方便解耦,简化开发

Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。

2.2、方便集成各种优秀框架

Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。

2.3、降低 Java EE API 的使用难度

Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度大大降低。

2.4、方便程序的测试

Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。

2.5、AOP 编程的支持

Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。

2.6、声明式事务的支持

只需要通过配置就可以完成对事务的管理,而无须手动编程。

3、spring framework

在这里插入图片描述


http://www.ppmy.cn/news/42211.html

相关文章

Python 小型项目大全 56~60

五十六、质数 原文:http://inventwithpython.com/bigbookpython/project56.html 质数是只能被 1 和它自己整除的数。质数有各种各样的实际应用,但是没有算法可以预测它们;我们必须一次计算一个。然而,我们知道有无限多的质数有待发…

第二十五章 配置镜像 - 创建镜像并配置第一个故障转移成员

文章目录第二十五章 配置镜像 - 创建镜像并配置第一个故障转移成员创建镜像并配置第一个故障转移成员第二十五章 配置镜像 - 创建镜像并配置第一个故障转移成员 创建镜像并配置第一个故障转移成员 以下过程描述了如何创建镜像和配置第一个故障转移成员。 在第一个故障转移成…

Python 人工智能:21~23

原文:Artificial Intelligence with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何…

【数据结构】- 初识数据结构之空间复杂度(下)

文章目录前言一、空间复杂度1.1空间复杂度简解1.2常见空间复杂度的计算举例二、常见复杂度的对比总结前言 将喜欢的一切留在身边 这便是努力的意义. 本章是关于初识数据结构之空间复杂度(下) 提示:以下是本篇文章正文内容,下面案例可供参考 一、空间复…

【Spring Clound】Feign底层原理分析-自动装载动态代理

文章目录前言1、什么是Feign?2、为什么要使用Feign?3、Feign依赖注入原理3.1、Feign自动装载3.2、FeignClientFactoryBean#getObject4、总结前言 是一个HTTP请求调用轻量级框架,可以以Java接口注解的方式调用HTTP请求,而不用像Ja…

Linuxbrew安装及使用介绍

Linuxbrew安装及使用介绍Linuxbrew安装安装linuxbrewlinuxbrew必装包brew常用命令linuxbrew注意事项Linuxbrew安装 The Homebrew package manager for Linux 安装linuxbrew 将以下命令粘贴到命令行中运行: sh -c "$(curl -fsSL https://raw.githubusercontent.com/Lin…

走进小程序【六】微信小程序架构之【视图层】万字详解

文章目录🌟前言🌟小程序架构🌟视图层 View🌟WXML🌟数据绑定🌟列表渲染🌟条件渲染🌟模板🌟WXSS🌟尺寸单位🌟样式导入🌟内联样式&#x…

burp抓包https链接不安全解决方法

在浏览器已经导入Burpsuite的证书之后,抓包,浏览器仍然显示抓取https包提示不是私密链接解决方法 适用于没有继续访问的按钮。 方法一: 浏览器输入 chrome://flags 搜索 Allow invalid certificates for resources loaded from localhost.翻译过来就是 允许从本地主机加载资…