后端相关随机题目记录(1)

在这里插入图片描述

目录

后端相关随机题目记录(1)

  • 后端相关随机题目记录(1)
    • Bean的类型以及作用域
    • Bean的生命周期
    • Mysql的底层数据结构
    • Redis
    • Http和Https区别
    • AOP在项目的应用 自定义注解?
    • 请求在spring中的一个流程
    • Nacos与zk的区别
    • SpringMVC执行流程
    • 简述Bean的生命周期


文章所属专区 超链接


后端相关随机题目记录(1)

闲着也是闲着,来都来了,看看吧。

Bean的类型以及作用域

Singleton:单例模式,Spring 容器中只会创建一个 Bean 实例,所有对该 Bean 的请求都将返回同一个实例。默认的作用域为 Singleton。
作用域:
Prototype:原型模式,每次请求该 Bean 时,都会创建一个新的 Bean 实例。因此,该 Bean 的生命周期和请求周期相同。
Request:每个 HTTP 请求都会创建一个新的 Bean 实例,该 Bean 的生命周期将与 HTTP 请求的生命周期相同。只有在 Web 应用程序上下文中才有意义。
Session:每个 HTTP Session 都会创建一个新的 Bean 实例,该 Bean 的生命周期将与 HTTP Session 的生命周期相同。只有在 Web 应用程序上下文中才有意义。
Global Session:该作用域仅适用于基于 Portlet 的 Web 应用程序,它表示 Portlet 应用程序的全局 Session 范围内创建 Bean 实例。只有在 Portlet 上下文中才有意义。
类型:
POJO 类型的 Bean:通过配置文件或注解方式定义的简单 Java 对象。
Factory Bean 类型的 Bean:实现了 FactoryBean 接口的 Bean,可以通过其 getObject() 方法返回一个其他类型的 Bean 实例。
Abstract Bean 类型的 Bean:继承了 AbstractBeanDefinition 类的 Bean,可以自定义 Bean 的创建和销毁过程,例如:自定义属性注入和初始化方法的调用时机等。
Inner Bean 类型的 Bean:在 Bean 的属性值中定义的一个 Bean,它的生命周期与外部 Bean 相关联,外部 Bean 销毁时内部 Bean 也会被销毁。
Alias Bean 类型的 Bean:通过别名引用其他 Bean 实例的 Bean,通常用于简化配置文件中的 Bean 引用。

Bean的生命周期

对 Prototype Bean 来说,当用户 getBean 获得 Prototype Bean 的实例后,IOC 容器就不再对当前实例进行管理,而是把管理权交由用户,此后再 getBean 生成的是新的实例。
所以我们描述 Bean 的生命周期,都是指的 Singleton Bean。

1. 实例化Bean

通过xml配置或者注解(Autowire)告诉spring哪些bean需要实例化。
对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化
对于BeanDefinition,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。

2. 设置对象属性(依赖注入)

实例化后的Bean对象被封装在BeanWrapper对象中,Spring容器根据BeanDefinition中的信息,以及BeanWrapper提供的设置属性的接口完成依赖注入。

3. 初始化
初始化完成后,Bean就可以被使用了
3.1 检查Aware相关接口,并设置依赖

spring会检测Bean是否实现了Aware相关接口(xxxAware),并将xxxAware实例注入给Bean
如果实现了BeanNameAware,会调用他实现的setBeanName(String beanId)方法,传递的是这个Spring配置文件的这个Bean的id值(beanId);
如果实现了BeanFactoryAware,会调用他实现的setBeanFactory()方法,传递的是spring工厂本身;
如果实现了ApplicationContextAware,会调用他实现的setApplicationContext()方法,传递的是spring上下文;

3.2 BeanPostProcesser前置处理

BeanPostProcesser用来做一些自定义处理,那将会调用postProcessBeforeInitialization

3.3 是否实现Initailization接口

执行afterPropertiesSet()方法

3.4 Bean是否在Spring的配置文件中配置了 init-method属性

如果有,则会调用其配置的初始化方法

3.5 BeanPostProcesser后置处理

BeanPostProcesser用来做一些自定义处理,那将会调用postProcessAfterInitialization(Object
obj, String s)方法。

真正实现初始化的是 3.3 3.4两部 其他都是初始化的前后置处理。

  1. 销毁

4.1DisposableBean接口

当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法

4.2 destroy-method

如果spring的配置文件里配置了destroy-method属性,会自动调用其配置的销毁方法。

Mysql的索引类型

  1. 普通索引 index

没有任何限制,唯一的作用是加速数据的查找,允许在定义索引的列为空以及重复,关键字 index,key
create index index_name on table_name (column_name);
alter table table_name add index index_name (column_name);

  1. 唯一索引 unique

唯一索引是为了避免数据出现重复,索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。UNIQUE
create unique index index_name on table_name (column_name);
alter table table_name add unique index_name (column_name);

  1. 主键索引 primary key

不允许索引列为空或者更值重复,PRIMARY KEY
create table table_name
(
id int not null,
username varchar(16) not null,
primary key (column_name)
);

  1. 组合索引

将多个列共同组成一个索引
create index index_name on table_name (column_name1, column_name2);

5.全文索引

主要用来查找文本中关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。
全文索引允许在索引列中插入重复值和空值。
不过对于大容量的数据表,生成全文索引非常消耗时间和硬盘空间。
创建全文索引使用 FULLTEXT 关键字。

Mysql的底层数据结构

常见的数据结构有 二叉树,红黑树 B-TREE,B+TREE
而Mysql的数据结构是 B+Tree

Redis

使用spring 的redis注解@CacheConfig,@Cacheable,@CachePut,@CacheEvict,@Caching
将方法查出来的结果放到redis,后面有调这些接口,如果数据有命中,先从redis读取,速度快,性能好,避免直接查询数据库,如果没有,再去数据库查找。

Http和Https区别

Https:是HTTP的安全版,它是在HTTP的基础上加上了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密

AOP在项目的应用 自定义注解?

请求在spring中的一个流程

Nacos与zk的区别

SpringMVC执行流程

客户端浏览器发起请求到服务端进行处理,都是和服务端的DispatcherServlet(Controller)进行交互,由前端控制器处理浏览器的请求并返回view给浏览器

  1. 客户端请求(request)到前端控制器(DispatcherServlet)
  2. 前端控制器将用户请求发送到处理器映射器(HandlerMapping)
  3. 处理器映射器根据请求,找到负责处理请求的处理器。找到负责处理该请求的处理器,并将其封装为处理器执行链(HandlerExecutionChain)给前端处理器
  4. 前端控制器根据处理器执行链中的处理器,找到能够处理改处理器的处理器适配器(HandlerAdapter),适配器有多个
  5. 处理器适配器会调用对应具体的控制器(Controller)(程序员编写)
  6. 控制器将处理结果以及要跳转的视图封装到一个对象(ModelAndView)中并将其返回给处理器适配器
  7. 处理器适配器将ModelAndView返回给前端控制器,至此,业务处理完毕
  8. 前端控制器把获取的ModelAndView对象传给视图解析器(ViewResolver),把逻辑视图解析成物理视图
  9. 视图解析器返回一个View进行视图渲染(把模型填充到视图中)
    10.前端控指器把渲染后的视图响应给客户端
    在这里插入图片描述

简述Bean的生命周期

spring中bean的创建,使用到销毁全部由容器来实现
1.解析xml配置或注解配置的类,得到BeanDenifition(Bean的描述)
2.实例化bean对象(通过BeanDefinition反射来创建Bean对象,此时只是在堆空间中申请空间,属性都是默认值)
3.设置Bean对象属性
4.检查Aware相关接口并设置相关依赖(所有调用容器对象的地方都会实现Aware接口),如BeanNameAware
5.调用BeanPostProcessor的初始化前方法
6.调用init初始化方法
7.调用BeanPostProcessor的初始化方法,此处会进行AOP
8.将创建的Bean对象放入一个Map中
9.业务使用Bean对象
10.Spring容器关闭时调用哪个DisposableBean的destory()方法

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity中URP下的菲涅尔效果实现(个性化修改)

文章目录 前言一、我们修正一下上篇文章中,可能遗留的Bug1、N向量 变为 单位向量2、使颜色范围在合理区间 二、实现菲涅尔效果强弱可自定义调节三、修改菲涅尔效果颜色1、在属性面板定义颜色属性2、在常量缓冲区申明该参数3、在片元着色器中,用颜色和菲涅…

Python---进程

1. 进程的介绍 在Python程序中,想要实现多任务可以使用进程来完成,进程是实现多任务的一种方式。 2. 进程的概念 一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程&#xf…

QT for Android安卓编译环境搭建+首次编译3个大坑

1、安装 编译环境能否搭建成功,主要是看各个依赖软件的版本是否匹配。依赖的软件有3个:JDK、安卓SDK、安卓NDK。 我的qt版本是5.14.1,我亲测以下版本可以成功让编译安卓: QT5.14 JDK1.8.0 安卓SDK26.1 安卓NDK20.1 在QT-&g…

LeetCode 142. 环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整…

【网络安全】-Linux操作系统—操作系统发展历史与Linux

文章目录 操作系统发展历史初期的操作系统分时操作系统个人计算机操作系统 Linux的诞生UNIX与GNU项目Linux内核的创建 Linux的特点开放源代码多样性社区支持 Linux的应用服务器和超级计算机嵌入式系统桌面系统 总结 操作系统发展历史 操作系统(Operating System&am…

Linux之FTP 服务器

一、FTP服务器匿名账户服务器配置 1、测试是否已安装vsftp服务器: 2、启动vsftp服务器: 3、修改vsftp主配置文件,允许匿名登录 4、重新启动vsftpd服务,禁用防火墙 5、打开FTP服务的数据文件存放目录/var/ftp,复制若干文件到该目…

Java小案例-RocketMQ的11种消息类型,你知道几种?(死信消息)

前言 在RocketMQ中,死信消息(Dead-Letter Message)是指那些在正常情况下无法被消费者消费的消息。这些消息会被存储在死信队列(Dead-Letter Queue,简称DLQ)中。 死信消息的特性包括: 不会再被…

DC-4靶场

目录 nmap进行主机发现 尝试反弹shell: 进入交互式shell: Hydra爆破jim用户密码: ssh登录charles : 提权(三种方法): exim4提权…

智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社会群体算法4.实验参数设定5.算法结果6.…

PIC单片机项目(4)——基于PIC16F877A的温度光照检测装置

1.功能设计 基于PIC16F877A单片机,使用DS18B20进行温度测量,使用光敏电阻进行光照测量,将测量值实时显示在LCD1602屏幕上,同时可以设定光照阈值和温度阈值。当温度大于阈值,则蜂鸣器报警,当光照小于阈值&am…

【源码解析】Semaphore角度聊聊AQS

案例 Semaphore,俗称信号量,它是操作系统中PV操作的原语在java的实现,它也是基于 AbstractQueuedSynchronizer实现的 private static ExecutorService threadPool Executors.newFixedThreadPool(4);private static Semaphore semaphore ne…

设计模式——结构型

1.装饰器模式 要素:装饰器,装饰对象 为待装饰对象中某一结构特征添加内容,而不是新建一个特征 /*** 装饰对象*/ public interface Shape {public void draw(); } /*** 具体装饰对象*/ public class Circle implements Shape{private String…

计算机组成原理——校验码

计算机组成原理学习笔记——校验码-CSDN博客 校验码——海明码及码距,码距_海明码的码距是多少-CSDN博客 1 下列关于码距与检错与纠错能力的描述中正确的是 (ABC) (多选) A. 码距为1的编码不具备任何检错能力 B. 码…

社交网络分析4(上):社交网络链路预测分析、Logistic回归模型、LLSLP方法(LightGBM 堆叠链路预测)、正则化方法、多重共线性

社交网络分析4 写在最前面社交网络链路预测分析概述链路预测分析简介链路预测分析的重要性社交网络链路预测分析方法基于网络结构的方法基于节点属性的方法基于随机游走的方法基于深度学习的方法 基于相似性和基于似然性的链路预测方法基于相似性的方法基于邻居的方法基于路径的…

Linux shell编程学习笔记36:read命令

*更新日志 *2023-12-18 1.根据[美] 威廉肖特斯 (Willian shotts)所著《Linux命令行大全(第2版)》 更新了-e、-i、-r选项的说明 2.更新了 2.8 的实例,增加了gif动图 3.补充了-i的应用实例 2.1…

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图) 目录 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 &a…

自清洗过滤器工作原理尺寸选型参数,内部结构,压差开关如何调节

​ 1:全自动自清洗过滤器设备介绍 全自动反冲洗过滤器是水净化过程中不可缺少的处理手段,用于拦截水中的各种杂质,以净化水质或保护系统中其他设备的正常工作。普通网式过滤器因其结构简单、过滤效果好、阻力小而广泛应用于水源过滤、工业循…

神经网络可以计算任何函数的可视化证明

神经网络可以计算任何函数的可视化证明 对于神经网络,一个显著的事实就是它可以计算任何函数。 如下:不管该函数如何,总有神经网络能够对任何可能的输入x,输出值f(x) 即使函数有很多输入和输出&#xff0…

Git提交前的必备神器——自动清除调试语句脚本

说在前面 不知道大家有没有遇到这样一种情况,平时在写代码调试时有时候会使用到debugger,可能大部分时间在提交代码前会记得把debugger先删除,但可能也会存在将debugger提交上去的情况,那我们该怎么防止出现这种情况呢&#xff1f…

RLC防孤岛负载测试:电力系统安全运行的重要保障

在电力系统中,孤岛效应是一个严重的问题,它可能导致电力系统的不稳定甚至崩溃。为了确保电力系统的安全运行,必须进行RLC防孤岛负载测试。RLC防孤岛负载测试是一种模拟电网故障后,对电力系统进行检测的方法,主要用于检…