目录

前言

一、什么是轻量级容器

二、为什么使用Spring

三、面试回答


前言

想着写一些关于spring、springmvc系列的,毕竟这类是框架基础,早些年用的都是SSM或者SSH架构,都是非常流行的,包括我刚毕业那会,之前接触的都是spring或者springmvc系列的项目,所以一些早期项目,在springBoot以及微服务还没有开始流行的时候,有一个springMVC架构的项目其实已经算是比较前沿的了。现在很多银行系统可能还都是用的是springMVC系列的项目。

所以接下来会分享一些spring以及springmvc系列的博文,希望大家能够多多指教,互相学习,有讲的不正确不恰当的地方还请指出。

当你去面试的时候,你介绍项目的时候,当你介绍项目用的是spring或者springMVC或者springBoot的时候,面试官都会问你一个问题:你知道spring、springMVC、springBoot之间的区别和联系吗?

这基本是必考题,大家可以留意一下,这时候你说一大串800字作文其实是没用的,面试官可能自己都不会全听,你说的只要抓住几个点就可以了。在接下来的博客更新的系列中,也会教你如何回答面试官这个问题。

一、什么是轻量级容器

容器:spring容器帮我们管理业务逻辑层,里边有很多业务逻辑对象,有对象就有对象的生命周期的管理(创建,销毁)。

轻量级:spring给用户提供的服务完全有用户自己决定,spring想用什么服务自己开启使用。但是重量级的都是只要你用就把所有的服务都给你,不能自己定制。

spring容器从来不能独立运行,一定借助于其他容器启动,或者借助web容器启动,或者ejb容器启动。

二、为什么使用Spring

1、动态解藕,方便开发,面向接口设计
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用

2、方便程序的测试TDD(Test-Driven Development)
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。

3、降低Java EE API的使用难度
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个简单的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

4、方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。

5、AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

6、声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

7、对异常的处理方式,所有的都转换成Unchecked的。

8、良好的设计,容易扩展,很多可重用的组件

三、面试回答

当你回答Spring 的时候,你只要说出上面这两个点就基本可以了,但是可能内容比较多,不可能记得住,你可以简单的按照下面这样回答,也可以,毕竟是面试嘛,回答多回答少不会相差比较大,意思接近即可

什么是Spring呢,Spring的核心功能是轻量级容器,帮我们管理业务对象,对象的生命周期,以及对象和对象之间的关系,还有轻量级的就是所提供的服务都是允许定制的;他有两个核心组件,就是IOC(控制反转)和AOP(面向切面编程)

(1)Spring基础|什么是Spring|Spring相关概念|为什么说Spring是轻量级容器相关推荐

  1. [Spring 深度解析]第2章 Spring基础

    第2章 ◄Spring基础► ​ 在上一章节中,我们学习了Java的注解与反射,在这一章节我们将了解一下Spring框架,并学习Spring框架中重要的编程思想控制反转(IOC).面向切面编程(AOP ...

  2. Spring基础专题——第十一章(高级注解编程完结)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  3. Spring基础专题——第九章(基础注解编程——上)

    目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从一个互联网职场小白到一个沪漂湿人,一路让我知道分享是一件多么重要的事情 ...

  4. Spring基础专题——第七章(持久层整合)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  5. Spring基础专题——第六章(Aop编程)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  6. Spring基础专题——第五章(Aop代理)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  7. Spring基础专题——第三章(反转控制与依赖注入)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  8. Spring基础专题——第二章(注入Injection)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

  9. Spring基础专题——第一章(第一个Spring程序)

    前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...

最新文章

  1. 宏基因组扩增子最新分析流程QIIME2:官方中文帮助文档
  2. 神经网络和深度学习简史(三)
  3. [转移]安装 BugZilla 时 Perl 模块的安装
  4. 一个SQL Server Sa密码破解的存储过程
  5. 零售行业如何增加突围加速度?精细化运营快、准、狠
  6. C++:09---类静态成员、类常量成员
  7. STC51-l2C总线
  8. 500万相机芯片尺寸_MGS二代系列500万像素新品面世
  9. 2029.石子游戏 IX-LeetCode
  10. python数据模型_#PYTHON#数据模型 | 学步园
  11. 前端 JavaScript 之『防抖』的简单代码实现
  12. 动态规划算法 dynamic programming
  13. 鸿蒙分布式内核,华为发布鸿蒙:基于微内核的全场景分布式OS
  14. NYOJ 取石子总结
  15. 大数据查询平台有哪些?Hadoop数据查询组件分析
  16. [日更-2019.4.20、21] cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
  17. python打印九九乘法表上三角_用Python打印九九乘法表正三角和倒三角。
  18. delphi 报错AV调试方法
  19. STM32MP1如何让洗衣机操作界面更炫酷?
  20. NLP自然语言处理CRF详解

热门文章

  1. 23.Android之颜色码制表
  2. vue-cli禁用jslint
  3. Android之ViewModel的使用
  4. 影楼行业的除了ps修图外还有Lr。
  5. android绕过设备锁(device lock)
  6. 【分享NVIDIA GTC大会干货】与Jetson嵌入式平台工程师的深度挖掘问答
  7. GDC翻译:Far Cry 5 的程序化世界生成(第二部分:6-崖壁工具)
  8. Linux 加密解密技术基础及OpenSSL介绍
  9. 【C++】题目:输入三个整数x,y,z,请把这三个数由小到大输出。
  10. 【Python自动化测试32】App自动化环境搭建