「Java面试」如果不使用Spring,我们将如何开发?

简介: 曾经有一道面试题掀起了劲爆的浪潮,说如果不使用Spring,我们将如何开发?好多家公司都模仿提问了这么一道面试题,而且好多人也都在各个社区给出了自己的答案。接下来看看网友们是怎么说的。

曾经有一道面试题掀起了劲爆的浪潮,说如果不使用Spring,我们将如何开发?好多家公司都模仿提问了这么一道面试题,而且好多人也都在各个社区给出了自己的答案。接下来看看网友们是怎么说的。


有说手写IoC的,有说用Servlet完成Web开发的,有说用纯JDBC完成数据库操作的等等,大家回答各有千秋。其实,想想我们上一代的程序员,没有Spring不也照样开发出非常多优秀的系统。


另外,我花了1个多星期,准备了一份500页的PDF面试题解析配套文档,想获取的小伙伴可以扫描文章底部二维码领取!

1、Spring生态

那我们使用Spring到底能给我们带来哪些好处呢?

根据我对Spring 10多年的研究经验,给大家做以下总结。

首先,Spring是一个轻量级的应用框架。当然,众所周知,它提供了 IoC 和 AOP 这两个核心的功能。

494dbcf860bfdde6b832f89a2288c86d.jpg

它的核心目的是为了简化企业级应用程序的开发,使得开发者只需要关心业务需求,不需要关心 Bean 的管理,以及通过切面增强功能减少代码的侵入性。

当然,Spring发展到现在俨然不只是一个框架,而是一个生态,我们习惯性地称之为Spring全家桶。Spring大约有20个模块,由1300多个不同的文件构成。这些模块可以分为核心容器、AOP和设备支持、数据访问与集成、Web组件、通信报文和集成测试、集成兼容等类。如图所示:

4aebedca82e324b2afbb58ee1ece2246.jpg

组成Spring框架的每个模块都可以单独存在,也可以将一个或多个模块联合实现。

2、使用Spring的好处

从 Spring 本身的特性来看,我认为有几个关键点是我们选择 Spring 框架的原因。

9573021c1bf5a6cf029e4056b742814f.jpg

第1个,轻量:Spring 是轻量的,最核心的基本的版本文件大小大约为 2MB。

第2个,支持IoC/DI:当然,IoC不是Spring独有的。但最重要的是,可以使用Spring 的 IoC 容器实现对 Bean 的全生命周期的管理,还可以通过 DI 实现依赖注入,从而实现了对象依赖的松耦合管理。

第3个,支持AOP面向切面的编程:Spring 支持面向切面的编程,从而把应用业务逻辑和系统服务分开。

第4个,支持MVC:Spring MVC 提供了功能更加强大且更加灵活的 Web 框架支持

第5个,支持数据访问:Spring集成对主流ORM框架的支持,比如JPA、MyBatis等等。

第6个,声明式事务管理:Spring 通过 AOP 实现了事务的统一管理,对应用开发中的事务处理提供了非常灵活的支持

第7个,集成测试:Spring为测试提供支持,在开发环境即可生成测试

最后,Spring生态非常庞大。使用Spring几乎可以满足所有业务场景的开发。更重要的是社区的活跃度和技术的成熟度都非常高。

以上就是我对Spring的理解。任何一个技术框架的出现,一定为了实现某些业务场景或者是某一类技术问题的解决方案。当大家有了的开发经验之后,对一些技术框架,要有自己的见解和思考。我自己在面试的时候也喜欢问这一类的问题。


image.gif

相关文章
|
1天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
19 5
|
1天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
18 4
|
1天前
|
SQL Java API
|
1天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
10 2
|
4天前
|
人工智能 Java API
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
本次分享的主题是阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手,由阿里云两位工程师分享。
阿里云工程师跟通义灵码结伴编程, 用Spring AI Alibaba来开发 AI 答疑助手
|
11天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
11天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
11天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
11天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

热门文章

最新文章