前言
想着写一些关于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(面向切面编程)