(1)Spring基础|什么是Spring|Spring相关概念|为什么说Spring是轻量级容器
目录
前言
一、什么是轻量级容器
二、为什么使用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是轻量级容器相关推荐
- [Spring 深度解析]第2章 Spring基础
第2章 ◄Spring基础► 在上一章节中,我们学习了Java的注解与反射,在这一章节我们将了解一下Spring框架,并学习Spring框架中重要的编程思想控制反转(IOC).面向切面编程(AOP ...
- Spring基础专题——第十一章(高级注解编程完结)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第九章(基础注解编程——上)
目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从一个互联网职场小白到一个沪漂湿人,一路让我知道分享是一件多么重要的事情 ...
- Spring基础专题——第七章(持久层整合)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第六章(Aop编程)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第五章(Aop代理)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第三章(反转控制与依赖注入)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第二章(注入Injection)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring基础专题——第一章(第一个Spring程序)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
最新文章
- 宏基因组扩增子最新分析流程QIIME2:官方中文帮助文档
- 神经网络和深度学习简史(三)
- [转移]安装 BugZilla 时 Perl 模块的安装
- 一个SQL Server Sa密码破解的存储过程
- 零售行业如何增加突围加速度?精细化运营快、准、狠
- C++:09---类静态成员、类常量成员
- STC51-l2C总线
- 500万相机芯片尺寸_MGS二代系列500万像素新品面世
- 2029.石子游戏 IX-LeetCode
- python数据模型_#PYTHON#数据模型 | 学步园
- 前端 JavaScript 之『防抖』的简单代码实现
- 动态规划算法 dynamic programming
- 鸿蒙分布式内核,华为发布鸿蒙:基于微内核的全场景分布式OS
- NYOJ 取石子总结
- 大数据查询平台有哪些?Hadoop数据查询组件分析
- [日更-2019.4.20、21] cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
- python打印九九乘法表上三角_用Python打印九九乘法表正三角和倒三角。
- delphi 报错AV调试方法
- STM32MP1如何让洗衣机操作界面更炫酷?
- NLP自然语言处理CRF详解