• (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(面向切面编程)

  • 相关阅读:
    log4net使用封装,无缝切换 dotnet 和 dotnetcore
    使用 certbot 申请泛域名https证书
    StackExchange.Redis中文使用文档
    在 asp.net core 中使用类似 Application 的服务
    不一样的 SQL Server 日期格式化
    你可能不知道的 docker 命令的奇淫怪巧
    [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
    [k8s]k8s 1.9(on the fly搭建) 1.9_cni-flannel部署排错 ipvs模式
    [k8s] kubelet单组件启动静态pod
    [svc]runinit管理多进程
  • 原文地址:https://www.cnblogs.com/jalenFish/p/14098993.html
Copyright © 2020-2023  润新知