【后端面经-Spring】Spring简介

【后端面经-Spring】Spring简介

    • 1. Spring简介
    • 2. Spring模块
    • 3. Spring核心特性
    • 4. Spring的后续拓展
    • 面试模拟
    • 参考资料

1. Spring简介

Spring是为了简化java项目开发设计的一款设计层面开源框架,其设计目的就是为了“简化开发”。
它使用分层架构,解决业务逻辑层和各层之间的松耦合。
核心特性:

  • IOC:控制反转;
  • AOP:面向切面编程;

2. Spring模块

Spring框架可分为如下所示的模块:
在这里插入图片描述

  • 核心容器(Core Container):核心容器提供Spring框架的基本功能;
  • 数据访问/集成(Data Access/Integration)
  • 网络(Web);
  • AOP模块和Aspects(切面);
  • 设备(Instrumentation);
  • 测试(Test);
    每个模块的详细介绍可参考此博客:Spring详解(一)----Spring框架介绍

3. Spring核心特性

  1. IOC
    IOC(Inversion of Control)即控制反转,是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。
    Spring框架在核心容器中的BeanFactory模块中使用了工厂模式创建Java对象,这些对象就是常说的“Bean”对象,对于Bean对象的生命周期、创建方式,在此不做赘述。
    DI(Dependency Injection)即依赖注入,是IOC的一种实现方式,即通过反射机制,将Bean对象的属性注入到Bean对象中。有两种注入方式:设值注入(通过setter方法进行设置,较为简单)、构造注入(可构造依赖注入的优先级,但是较为复杂)。
  2. AOP
    AOP(Aspect Oriented Programming)即面向切面编程,是一种编程思想,是对OOP(Object Oriented Programming)的补充,OOP是对业务逻辑的封装,而AOP是对业务逻辑的分离,即将业务逻辑和非业务逻辑分离,使得业务逻辑更加清晰。
    AOP将项目中的通用功能进行封装,形成独立切面从而复用。

4. Spring的后续拓展

Spring是由Rod Johnson于2003年创建的,目前已经发展到了Spring5.0版本。后来,在Spring框架的基础上,又引申出了SpringBoot、SpringCloud等框架,这些框架都是基于Spring框架的,是Spring框架的拓展。目前SpringBoot框架也是一个常用框架。
学习路径应如下所示:

Java基础–>设计模式–>Spring框架–>SpringMVC–>SpringBoot、SpringCloud

面试模拟

Q:介绍一下Spring,什么是IOC、AOP、JavaBean?
A:Spring是为了简化java开发而设计的设计层面开源框架,核心思想是控制反转和面向切面编程,其中,控制反转指的是原本由程序手动创建对象的权力交给spring框架,从而实现资源的集中管理,创建的对象使用依赖注入的思想传递给相关类,这些被创建的对象称为“Bean”对象;而面向切面编程指的是将项目中的通用功能进行封装,形成独立切面从而复用。

参考资料

  1. Spring详解(一)----Spring框架介绍
  2. Spring基础知识汇总 Java开发必看
  3. Spring开发-廖雪峰官方网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50579.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试-杨辉三角python递归实现,二进制转换

杨辉三角 def yang_hui(x,y):xint(x)yint(y)assert x>y,列数不应该大于行数# x 表示行,y表示列if y1 or yx:return 1else:return yang_hui(x-1,y-1)yang_hui(x-1,y)xinput(输入第几行) yinput(输入第几列) resultyang_hui(int(x),int(y)) print(result) #inclu…

Docker consul 的容器服务更新与发现

目录 一、Consul 简介 1.什么是服务注册与发现 2. 什么是consul 3.consul 架构 二、部署 consul 服务器(192.168.88.10) 1.建立 Consul 服务 2.查看集群信息 3.通过 http api 获取集群信息 三、registrator服务器(192.168.88.60&…

mac 删除自带的ABC输入法保留一个搜狗输入法,搜狗配置一下可以减少很多的敲击键盘和鼠标点击次数

0. 背景 对于开发者来说,经常被中英文切换输入法所困扰,我这边有一个方法,删除mac默认的ABC输入法 仅仅保留搜狗一个输入法,配置一下搜狗输入:哪些指定为英文输入,哪些指定为中文输入(符号也可…

Intel RealSense D455(D400系列) Linux-ROS 安装配置(亲测可用)

硬件:Intel RealSense D455 系统:Ubuntu 18.04 Part_1: 安装librealsense SDK2.0 1.1 注册密钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE或者 sudo apt-key adv --keyserver hkp:/…

【已解决】电脑连上网线但无法上网

文章目录 案例情况解决方案必要的解决方法简要概括详细步骤1、打开控制面板2、打开更改适配器设置3、 找Internet协议版本44、修改配置 可能有用的解决方法 问题解决原理Internet 协议版本 4(TCP/IPv4)确保IP地址和DNS服务器设置为自动获取 案例情况 网…

小程序UV:衡量用户规模与活跃度的重要指标

什么是UV UV是Unique Visitor(独立访客)的缩写,指的是在特定时间段内访问某个网站、应用或平台的独立用户数量。UV是根据设备、IP地址、Cookie等来识别不同的用户,对于相同的用户多次访问,只计算为一个UV。UV是衡量网…

redis的四种模式优缺点

redis简介 Redis是一个完全开源的内存数据结构存储工具,它支持多种数据结构,以及多种功能。Redis还提供了持久化功能,可以将数据存储到磁盘上,以便在重启后恢复数据。由于其高性能、可靠性和灵活性,Redis被广泛应用于…

力扣天天练--week3-LeetCode75

topic75-9-t443:压缩字符串 题目描述: 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需…

【图像处理】使用自动编码器进行图像降噪(改进版)

阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…

Linux之Shell 编程详解(一)

第 1 章 Shell 概述 1)Linux 提供的 Shell 解析器有 [atguiguhadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh2)bash 和 sh 的关系 [atguiguhadoop101 bin]$ ll | grep bash -rwxr-xr-x. 1 root root …

Ubuntu-解决包依赖关系

Ubuntu-解决包依赖关系的办法 安装软件包的时候,有时会遇到类似下图的依赖问题,无法正常安装,下面提供三种方法解决依赖问题。 1.可以尝试用下面方法处理依赖问题,紧跟前一条安装命令后面输入下面命令,然后再执行安装…

【学习笔记】行为识别SOTA方法比较

这里写目录标题 前言方法1 基于CNN的方法Slow-fast: 2 基于Vision-Transformer的方法Video TimeSformer :Video Swin Transformer : 3、基于自监督的方法VideoMAE: 4、基于多模态的方法Intern video: 前言 常用行为识别数据集包括:HMDB-51、…

windows使用多账户Git,多远程仓库版本管理

1 清除全局配置 git config --global --list // 看一下是否配置过user.name 和 user.email git config --global --unset user.name // 清除全局用户名 git config --global --unset user.email // 清除全局邮箱 2 本地仓库,每个远程对应的本地仓库目录下执行 $…

AddForce

ForceMode: Force:关注的是力整体 Impulse:关注的是冲量,与质量相关 VelocityChange:关注的是速度,与质量无关 Acceleration:关注的是加速度,与质量无关 public void AddForce…

基于FasterRCNN深度学习网络的车辆检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ....................................................................... % 训练Faster R-…

hw技战法整理参考

目录 IP溯源反制 账户安全策略及预警 蜜罐部署联动方案

数据结构【查找】

第八章 查找 提前了解: 1、关键字: 若关键字能唯一标识一个数据元素,则关键字称为主关键字;若能标识若干个数据元素的关键字称为次关键字; 2、查找(检索):顾名思义,给定…

GitHub上怎么寻找项目?

前言 下面由我精心整理的关于github项目资源搜索的一些方法,这些方法可以帮助你更快更精确的搜寻到你需要的符合你要求的项目。 写文章不易,如果这一篇问文章对你有帮助,求点赞求收藏~ 好,下面我们直接进入正题——> 首先我…

尚医通06:数据字典+EasyExcel+mongodb

内容介绍 1、数据字典列表前端 2、EasyExcel介绍、实例 3、数据字典导出接口、前端 4、数据字典导入接口、前端 5、数据字典添加redis缓存 6、MongoDB简介 7、MongoDB安装 8、MongoDB基本概念 数据字典列表前端 1、测试问题 (1)报错日志 &am…

升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】

简介 升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。 完整私有化包下载地址 💾 https://kf.shengxunwei.com/freesite.zip 当前版本信息 发布…