【Java进阶营】Spring的起源和背景

360加固DEX解密与ELF修复技术解析 本文深入解析360加固的DEX解密与ELF修复技术,详细介绍了其多层保护机制、Java层入口分析、Native层加载流程及反调试绕过技巧。通过RC4和zlib解密技术,结合Frida工具实现内存Dump和ELF文件修复,为逆向工程师提供实用解决方案。 阅读详情

Java 是大型分布式企业项目开发的首选语言,我们所熟悉的大部分系统平台都是以 Java 为核心进行搭建的。

经过二十多年的发展,Java 语言的性能得到了不断完善,更有大量的技术公司围绕 Java 推出了种类繁多的开源项目,以帮助解决 Java 开发中存在的各类困难。

Java 从产生到成为主流技术,其主要依靠的就是 Java EE 企业级平台开发,并且围绕着企业开发这一领域不断地制定技术标准。正因为有了这些技术标准,Java 开发与设计才变得更加灵活,也才有更多的人参与到这些标准的实现技术当中。

如图 1 所示为 Java EE 开发的标准架构。

image.png

图 1  Java EE 标准架构

通过图 1 可以发现,Java EE 中采用的是 MVC 设计模式,要求通过 EJB(Enterprise Java Bean,企业 JavaBean)实现业务中心的搭建,由会话 Bean(Remote Interface,远程接口)定义业务方法,由实体 Bean(Local Interface,本地接口)负责数据层的实现并与 SQL 数据库进行 JDBC 操作。

EJB 容器的存在,可以极大地简化 JDBC 的重复性处理,同时可以更好地管理实例化对象,使开发者只关注于业务实现。这样的技术架构虽然设计理念领先,但一个非常现实的问题是 EJB 的使用成本过高。EJB 最终未能得到广泛的应用。

EJB 未能得到广泛应用的原因:

  • 虽然 EJB 技术提供了超前的设计理念,但是稳定的 EJB 容器(如 WebSphere、WebLogic 等)价格昂贵。在进行技术选型的时候,企业不得不面对成本限制问题。当然,用户也可以选用免费的 JBoss。
  • EJB 服务器硬件价格不菲,由于需要维护对象状态,所以需要极大的性能开销。

最为重要的是,随着技术的发展,EJB 的不足之处也逐渐被人们认识到。虽然 EJB 3.x 提供的 JPA 标准为后续的实体层开发技术带来了一个新的方向,但遗憾的是并没有得到广泛的应用。

不管 Java 技术未来向何处发展,EJB 这一技术理念的出现,为整个行业带来了新的领航方向。

Java EE 开发标准强调的是 MVC 设计模式的应用以及业务层的定义。由于 EJB 没有普及开来,所以开发者需要在 Web 端手动模拟 EJB 技术实现方案。长久以来,Java 开发的设计结构如图 2 所示。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

image.png

图 2  在 Web 中实现 MVC 设计模式

图 2 中给出了现代 Java 开发中常用的标准设计结构。由于取消了 EJB 容器,所以开发者需要通过手动代码方式实现业务层与数据层的结构,还需要利用开源的JMS消息服务组件(以ActiveMQ为代表作)实现消息组件与业务层的通信。

这样的设计可以有效降低项目的运行成本,但开发者却需要面对大量的 Java 原生代码。为了防止不同层之间形成耦合,还需要引入工厂设计模式,进行对象获取。为了方便业务层实现事务控制,还需要引入代理设计模式,如图 3 所示。这样的开发,同样会造成成本的大幅攀高。

image.png

图 3  MVC 设计模式应用

通过图 3 可以发现,缺少了 EJB 容器支持之后,开发者不仅需要手动进行对象管理,还需要依据反射机制进行一系列的先期架构设计,同时还需要考虑解耦合与多线程等种种问题。

如果可以有一个容器,能像 EJB 那样进行对象管理,帮助开发者免去软件架构设计的困难,将极大地提高开发效率。正是在这样的背景下,Spring 开发框架应运而生。

国科大作业考试资料《人工智能原理与算法》2024新编-第三次作业整理 1. 你的目标是让机器人走出迷宫。机器人面朝北,开始位置在迷宫中间。你可以让机器人转向面朝东、南、西或北。你可以让机器人向前走一段距离,在撞墙之前它会停步。 (1)将问题形式化。状态空间有多大? (2)在迷宫中游走,在两条路或更多路交叉的路口可以转弯。重新形式化这个问题。现在状态空间有多大? (3)从迷宫的任一点出发,我们可以朝四个方向中的任一方向前进直到可以转弯的地方,而且我们只需要这样做。重新对这个问题进行形式化。我们需要记录机器人的方向吗? 2. 传教士和野人问题 阅读详情

相关推荐

GIS国土工具实战:从地类分析到坐标转换,一站式解决项目难题

本文详细介绍了GIS国土工具在国土整治项目中的高效应用,涵盖地类分析、坐标转换、影像加载等核心功能。通过实战案例展示如何利用该工具快速处理shp与txt文件转换、智能比对三调二调数据,以及优化影像加载策略,显著提升项目效率。特别适合需要处理复杂国土数据的专业人员使用。

weixin_28732953的博客 334

Spring诞生的背景

EJB(使JavaBean拥有企业级JavaBean功能的框架): Enterprise JavaBean,相较于一般JavaBean自然是有很多安全高效的附加功能,比如事务管理、安全、持久化、分布式等等, 因此,开发者只需要快速将JavaBean构建出来就行,让JavaBean变成EJB的任务就交给了WebServer(即 WebServer 内置的 EJB 容器/框架),市场上拥有EJB容器的服务器是收费的,比如Oracle的weblogic,IBM的websphere,这类服务器(不仅提高了ser

qq_36777191的博客 419

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

Spring背景发展史及注解的使用

Spring背景发展史及注解的使用Spring背景及发展史一、起源二、Spring的发展史1.Spring1.x 时代2.Spring2.x 时代3.Spring3.x --Spring4.x4.Spring boot的出现三、Sprng2.X时代-注解开发1.声明bean的注解2.注入bean的注解3.切面(AOP)相关注解4.java配置类相关注解5.@Velue注解5.1注入普通字符5.2注...

Dokikilililiya 1039

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

Python_构建同花顺问财智能选股API服务

本文详细介绍了如何使用Python构建同花顺问财智能选股API服务,涵盖从环境准备、核心API开发到高级功能扩展的全过程。通过Flask框架和pywencai库,开发者可以快速搭建稳定可靠的选股接口,实现自动化股票筛选与交易系统集成,提升量化投资效率。

weixin_30596343的博客 333

Spring的起源与发展

Spring 框架自诞生以来,一直在不断发展和完善,逐渐成为 Java 领域内最流行的开发框架之一。起源:2003 年由 Rod Johnson 创建,最初版本主要关注于依赖注入和面向切面编程。发展:经历了多个版本的迭代,逐步引入了注解支持、Web 模块、RESTful 支持、反应式编程等。生态系统:包括 Spring Boot、Spring Cloud、Spring Data 等子项目,提供了全面的企业级开发支持。

yuehua00的专栏 1405

【人工智能】架构师必读:大模型时代的意图识别 (Intent Recognition) 四大技术流派与实践指南

意图识别没有“银弹”,选择哪种方案取决于具体的业务需求、数据积累以及成本预算。如果追求极简与低成本,BERT 是不二之选。如果业务极其复杂且依赖上下文,RAG 或 Agent 模式更合适。如果追求极致的稳定与效果,基于 LLM 的微调 + Function Calling 是目前的行业最佳实践。参考资源:基于 LLM 的意图识别解决方案(Embedding 相关课程章节)

奶爸的编程之路,也就一周冷个三天 702

Spring开发框架

Spring是现在为流行的技术开发框架,也是所有企业开发之中必定要使用的开发框架,使用Spring可以有效的避免代码耦合性问题,也可以方便的进行各种开发资源的整合处理。在Spring框架中其核心组成为DI(依赖注入)与AOP(面向切面编程),而基于这两种处理机制可以有效的避免“硬”编码所带来的耦合问题,从而让所有的开发可以以配置或注解的形式执行,这样即方便修改又解决了类的继承限制问题。官方QQ群:612148723。

[nlp] 自然语言理解基准 ATIS Snips

ATIS 4k 21 Intents(not include UNK) 120 SlotsSNIPS 13k 7 Intents(not include UNK) 72 SlotsATIS Benchmark (Intent Detection) | Papers With CodeSNIPS Benchmark (Intent Detection) | Papers With Code

心宝的博客 748

Pointnet++改进91:2025最新改进模块-RepMBConv模块

本文提出了一种改进PointNet++网络的方法,通过在特征提取模块中引入RepMBConv结构来提升模型性能。主要内容包括:1)理论部分介绍了RepMBConv的设计原理,包含自监督学习框架、动态上下文建模等创新点;2)详细给出了三步修改步骤:创建包含RepMBConv的Python模块、在pointnet2_utils.py中添加注意力机制、修改pointnet2_sem_seg.py主网络结构;3)代码实现展示了如何将RepMBConv集成到PointNetSetAbstraction模块中,形成Po

AIcurator的博客 274

Spring(一):起源、历史、背景等

Spring的演化历史: Spring 1.0的出现彻底改变了我们开发企业级Java应用程序的方式。 Spring的依赖注入与声明式事务意味着组件之间再也不存在紧耦合,再也不用重量级的EJB了。这玩意儿不能更好了。 到了Spring 2.0,我们可以在配置里使用自定义的XML命名空间,更小、更简单易懂的配置文件让Spring本身更便于使用。这玩意儿不能更好了。 Spring 2.5让我们有了更优雅的面向注解的依赖注入模型(即@Component和@Autowired注解),以及面向注解的Spring MVC

m0_54866636的博客 1074

时间序列—显著相关性和滞后性分析_python

本文讲述了两个时间序列(信号)的相关性分析,可以利用相关性分析进行特征筛选。此外本文还讲了怎么判断时间序列的滞后性的方法。

qq_34229228的博客 2万+

spring背景和起源

Rod Johnson在2002年编著的《Expert one on one J2EE design and development》一书中,对Java EE 系统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新 Spring Logo 之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、

u014626784的专栏 2682

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Spring的起源和背景 以及你为什么要使用Spring

Spring的起源和背景 Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于...

龙塘湾 504

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring Boot(一):概述(1)——起源、历史、背景等

概述:        Spring Boot为开发者带来了更好的开发体验,但写完代码只是万里长征路上的一小步,后续的运维工作才是让很多人真正感到无助的。 Spring Boot在运维方面做了很多工作,部署、监控、度量,无一不在其涉猎范围之内,结合Spring Cloud后还可以轻松地实现服务发现、服务降级等功能。它还自带了不少非功能性的特性,比如安全、度量、健康检查、内嵌服务器和外置配置,这些都让...

lsxf_xin的专栏 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java-24 深入浅出 Spring 全景:从起源到 Spring 6 一文打通 IoC / AOP / 发展史

Spring 是面向 Java 平台的分层 Full-Stack 轻量级开源框架,以控制反转(IoC)和面向切面编程(AOP)为核心理念,简化企业级应用开发。本文系统讲解 Spring 的发展历程:2003 年 Rod Johnson 推出雏形,2004 年 3 月发布 1.0 正式版,2006 年 Spring 2.0 引入 XML Schema 命名空间,2009 年 12 月 Spring 3.0 基于 Java 5 并引入 SpEL,2013 年 12 月 Spring 4.0 全面支持 Java

谢谢你的喜欢 我们一起无限进步 5186

Spring的起源和背景

上图为Spring框架的组成结构 下面这几张也是的 Spring将大量实际开发中需要重复解决的步骤,抽象成了一个框架。 其中Spring Core Container是Spring框架的核心机制。 Spring框架就是实现了AOP功能的IOC(IOC是啥)容器。 Spring为企业级开发提供了一个轻量级解决方案,其中包括: 基于依赖注入的机制; 基于AOP的...

weixin_30276935的博客 224

Spring Cloud Alibaba(一):概述(1)——起源、历史、背景等

lsxf_xin的专栏 1219

Spring 框架的起源

在学习Spring boot之前,我们一起来回顾下Spring 是怎么出现的。 Spring 框架诞生于“黑暗”的 EJB 1 的时代(EJB 简单来说就是把已经编写好的程序/类打包放在服务器上执行),那是一个 J2EE 规范统治的时代,基于各种容器和 J2EE 规范的软件解决方案是唯一的“正道”,沉重的研发模式和生态让那个时代的开发者痛苦不堪。 随着经典巨著《Expert One-on-One J2EE Design and Development》的诞生,重规范时代终于迎来了一线曙光,该书的作者 .

Harry博客 376

java 中框架的起源

在Java开发中,我们经常使用Struts、Hibernate和Spring三个主流框架,但你是否知道这三个框架最初是为解决怎样的问题而生的? Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的? 我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javab

空城旧巷的博客 491

Spring源码解读(一):Spring的背景起源及框架整体介绍

一、前言 Spring起源于2002年Rod Johnson写的一本书《Expert One-on-One J2EE》,书里介绍了Java企业应用程序开发情况,并指出Java EE和EJB组件框架中的一些主要缺陷,还提出了一个基于普通的Java类和依赖注入的更简单的解决方案。在书中,他展示了如何在不使用EJB的情况下构建高质量、可扩展性的在线预留座位系统。为构建应用程序,他编写了超过3...

weixin_30275415的博客 284

Spring框架的起源

在我们的《Java Spring框架入门教程》中对 Spring 框架进行了十分详尽的介绍和剖析,但在学习 Spring Boot 之前,在这里回顾一下 Spring 是怎么出现的。

unber的博客 402

基于J2EE的姓氏起源查询系统

通过本次实验,我们深刻理解了J2EE架构的工作原理和优势,并掌握了使用Spring Boot和MyBatis开发Web应用的技巧。这些经验将为我们未来的学习和工作提供宝贵的帮助。

liangsj1009的博客 1347

Spring源码学习笔记:起源发展和核心模块主要职能

1、Spring 的前世今生 早在 2007 年,一个基于 Java语言的开源框架正式发布,取了一个非常有活力且美好的名字,叫做 Spring。它是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高聚合。业务逻辑开发是

Jarvis.y的博客 569
下一篇: 【Java进阶营】Spring是什么?
java364103
博客等级 码龄5年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值