深度剖析 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 ...
随机推荐
- 【认知服务 Azure Cognitive Service】使用Azure Search中Create an Demo的示例时,出现空白页面的问题
问题描述 在根据Azure 认知服务的Search功能文档创建示例时(快速入门:在门户中创建演示应用(Azure 认知搜索)).完全相同的步骤,在中国区创建后下载Demo,查询结果一片空白:如下: 而 ...
- 【Azure 应用服务】App Service"访问控制/流量监控"四问
问题描述 一问:App Service有那些访问限制的方式 二问:访问限制中,是否可以通过域名来进行限制,而不只是IP地址 三问:App Service如何查看到访问者(客户端)的IP地址,访问时间 ...
- 【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤
问题描述 如何在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤 问题解决 第一步:在 Media Service 这边点击资产.上传本地视频资源作为Media Se ...
- 14 CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C. Tenzing and Balls(dp+前缀最大值优化)
思路: dp还是挺明显的,思路可以参考最长上升子序列 有点dp的感觉 \(f[i]\)表示考虑前\(i\)个数,的最大值 当前数有两种删或不删 不删:\(f[i]=f[i-1]\); 删:\(f[i] ...
- 复习精简版快速学vue3
vue2中.如果给一个之前没有定义的属性赋值,会得不到时实更新: this.obj.b=2 //由于这个属性之前没有定义,是不支持动态响应,只能用this.$(this.obj,'b',2)也就是说v ...
- vscode ctrl + d 删除当前行 更改快捷键
vscode 删除当前行 更改快捷键
- GO 语言的并发编程相关知识点简介与测试【GO 基础】
〇.什么是协程 Coroutines ? 进程和线程太常见,本文就不再赘述了,直接一起看下什么是协程.如下图,先看下协程的定位: 关于用户空间和内核空间:进程运行起来就涉及到对内存资源的管理,然而内存 ...
- .Net接口版本管理与OpenApi
前言 作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api.版本控制使我们能够安全地添加新功能而不会造成中断性变更.一个良好的 Api 版本控制策略可以清晰地传达所做的更改,并允许使用现有 ...
- pyecharts + Django你不知道这个架构有多美
pyecharts + Django你不知道这个架构有多美 何为echarts? pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS ...
- Miracast技术详解(二):RTSP协议
目录 RTSP概述 抓包准备 WFD能力协商(Capability Negotiation) RTSP M1 Messages RTSP M2 Messages RTSP M3 Messages RT ...