深度剖析 Spring 框架在 Java 应用开发中的优势与应用
Spring是用于企业Java应用程序开发的最流行的应用程序开发框架。全球数百万开发人员使用Spring Framework创建高性能、易于测试和可重用的代码。Spring Framework是一个开源的 Java 平台。它最初由 Rod Johnson 编写,并于 2003 年 6 月在 Apache 2.0 许可下首次发布。
为什么是 Spring
Spring 在大小和透明度方面都非常轻巧。Spring Framework 的基本版本大小约为 2MB。
Spring Framework 的核心功能可用于开发任何 Java 应用程序,但是还有用于在 Java EE 平台上构建 Web 应用程序的扩展。Spring Framework 旨在通过启用基于 POJO 的编程模型来使 J2EE 开发更易于使用,并促进良好的编程实践。
使用 Spring Framework 的好处
以下是使用 Spring Framework 的几个重要好处的列表:
Spring使开发人员能够使用 POJO 开发企业级应用程序。仅使用 POJO 的好处在于,您不需要 EJB 容器产品,例如应用程序服务器,但您可以选择仅使用强大的 servlet 容器,例如 Tomcat 或某些商业产品。Spring以模块化的方式组织。尽管软件包和类的数量很多,但您只需担心您需要的部分并忽略其余部分。Spring不会重复发明轮子,而是真正利用了一些现有技术,例如多个 ORM 框架、日志框架、JEE、Quartz 和 JDK 定时器以及其他视图技术。- 使用
Spring编写的应用程序易于测试,因为环境相关的代码移动到了该框架中。此外,通过使用类似 JavaBean 的 POJO,更容易使用依赖注入来注入测试数据。 Spring的 Web 框架是一个设计良好的 Web MVC 框架,它提供了一个很好的替代方案,可以替代 Struts 或其他过度设计或不受欢迎的 Web 框架。Spring提供了一种方便的 API,用于将特定于技术的异常(例如由 JDBC、Hibernate 或 JDO 引发的异常)转换为一致的未经检查的异常。- 轻量级 IoC 容器往往非常轻量级,特别是与 EJB 容器相比。这对于在内存和 CPU 资源受限的计算机上开发和部署应用程序非常有益。
Spring提供了一致的事务管理接口,可缩小到本地事务(例如使用单个数据库)并扩展到全局事务(例如使用 JTA)。
依赖注入(DI)
Spring 最为人所知的技术是依赖注入(DI)的 Inversion of Control(IoC)风格。IoC 是一个通用概念,可以用许多不同的方式表达。依赖注入仅是控制反转的一个具体示例。
在编写复杂的 Java 应用程序时,应用程序类应尽可能独立于其他 Java 类,以增加重用这些类的可能性并在单元测试时独立于其他类进行测试。依赖注入有助于将这些类粘合在一起,同时保持它们的独立性。
依赖注入可以通过向构造函数传递参数或通过后期构造使用 setter 方法来实现。由于依赖注入是 Spring Framework 的核心
面向切面编程(AOP)
Spring 的关键组件之一是面向切面编程(AOP)框架。跨越应用程序多个点的功能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑分开。有各种各样的常见优秀例子,包括日志记录、声明性事务、安全性、缓存等。
OOP 中的模块化关键单元是类,而 AOP 中的模块化关键单元是方面。 DI 可帮助您将应用程序对象解耦,而 AOP 可帮助您将横切关注点解耦。
Spring Framework 的 AOP 模块提供了一种面向方面的编程实现,允许您定义方法拦截器和切入点,以清晰地解耦实现应该分开的功能的代码
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
深度剖析 Spring 框架在 Java 应用开发中的优势与应用的更多相关文章
- 基于Java spring框架的微信企业号开发中关于js-sdk的配置
在调用js-sdk的第一步,我们需要引入js-sdk的js链接,然后执行wx.config,官方示例如下所示: wx.config({ debug: true, // 开启调试模式,调用的所有api的 ...
- 使用Spring框架整合Java Mail
我的博客名为黑客之谜,今天演示的案例中会出现我的邮箱,还不赶紧收藏!我现在是小白,但是随着时间的流逝,我会逐渐向大神走进,所以,喜欢我的,或者喜欢大神的,点一波关注吧!顺便说一下,双十二快到了,有什么 ...
- Java项目开发中实现分页的三种方式一篇包会
前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...
- Java Web开发中路径问题小结
Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...
- Java Web 开发中路径相关问题小结
Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...
- 《Maven在Java项目开发中的应用》论文笔记(十七)
标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...
- 用Spring Boot颠覆Java应用开发
Java开发概述: 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言, ...
- Spring框架之使用JdbcTemplate开发Dao层程序
简介: JdbcTemplate开发dao层程序 由Spring框架给我们提供,Spring提供的很多操作数据源(关系型数据库,二维表格模型,有明确的行和列(mysql/orcal等) 非关系 ...
- 读书笔记《Spring Boot实战 —— Java EE 开发的颠覆者》
Spring框架是轻量级的企业级开发一站式解决方案 Spring使用简单的POJO Plain Old Java Object 无限制的普通Java对象 Spring Framework Runtim ...
- 16.用Spring Boot颠覆Java应用开发
转自:https://www.cnblogs.com/aishangJava/p/5971288.html Java开发概述: 使用Java做Web应用开发已经有近20年的历史了,从最初的Servle ...
随机推荐
- ASP.NET Core 微信支付(四)【支付结果通知回调(未按照官方步骤) APIV3】
官方文档 支付通知API 证书和回调报文解密 参考资料 netcore 中没有Request.InputStream 理论实战 对于我来说,这个微信支付结果通知回调有两个难点. 难点一 一开始在想是怎 ...
- Html飞机大战(十二): canvas写字(结束状态的编辑)
好家伙,基本的功能都做完了,来补充一个结束状态的游戏结束文案 上代码: case END: //给我的画笔设置一个字的样式 //后面写出来的字都是这个样式的 context.font = &quo ...
- C笔记(2014-12备份)
Video1: 1-编译器对待全局变量和局部变量的差别.全局变量分配空间是在数据区,局部变量分配在代码区. (比如局部变量 int lo_var = 2;后面的 = 2;是赋值语句,被编译器转化成机器 ...
- el-select封装(单选框、多选框、全选功能)
先看看设计图: 网上找了一溜,都是扯淡,样式也没个 自己动手吧,先把样式搞定 popper-class="xx-option" 所有单选框都用 :after和:before类 + ...
- XAF Blazor FilterPanel
前言 XAF列表视图(ListView)中的过滤(Filter),可以在ListView模型的Filters节点中添加,添加的过滤项(FilterItem)会在列表视图的工具栏中以下拉列表的形式显示, ...
- 使用PdfSharp从模板生成Pdf文件
最近在做一个生成文档的需求.通过先制作一个包含各字段占位符的文档模板,导入这个模板并填写内容替换掉占位符,再输出成最终文件. 由于版式固定,安全性更好,业务上常用Pdf作为最终标准化的格式, 在. ...
- 探究WPF中文字模糊的问题:TextOptions的用法
有网友问WPF中一些文字模糊是什么问题.之前我也没有认真思考过这个问题,只是大概知道和WPF的像素对齐(pixel snapping).抗锯齿(anti-aliasing)有关,通过设置附加属性Tex ...
- 修改主频 & 时钟树
在system_stm32f10x.c中可以更改这个 最先调用void SystemInit (void)启动HSI+各种恢复缺省配置 然后 调用 SetSysClock();执行设置时钟7 ...
- AutoNumber VsCode插件开发
AutoNumber VsCode插件开发 ::: details 目录 目录 AutoNumber VsCode插件开发 Step. 2: 安装脚手架 Step. 3: 创建空项目 Step. 4: ...
- Web Audio API 第1章 基础篇
Web Audio API 第1章 基础篇 我查了一下 Web Audio API 蝙蝠书居然在 2013 年就出版了 我又看了一下我的"豆瓣读书"频道内,这本书加入到" ...