后端相关随机题目记录(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.mfbz.cn/a/255130.html

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

相关文章

那些年项目中踩的那些坑(二)

目录 一、硬件资源与软件需求不匹配1.1 背景1.2教训 一、硬件资源与软件需求不匹配 1.1 背景 在项目中期需要添加XCP到TDA4的main域中,但是发现所有的八路can中已经有七路can被占用,剩下一路因为没有TJA1045驱动无法使用。 1.2教训 1.软件架构缺失&am…

FPGA时序分析与时序约束(二)——时钟约束

目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径 三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束 一、时序约束的步骤 上一章了解了时序分析和约束…

高级桌面编程(一)

前言 学习心得:C# 入门经典第8版书中的第15章《高级桌面编程》 创建控件并设置样式 1 样式 Style WPF 当中我们可以对每一个控件进行完全的自定义。我们可以随意更改控件外观和功能。提供我们能完成这样的效果与控件的样式(Style)有着不可分…

如何实现TensorFlow自定义算子?

在上一篇文章中 Embedding压缩之基于二进制码的Hash Embedding,提供了二进制码的tensorflow算子源码,那就顺便来讲下tensorflow自定义算子的完整实现过程。 前言 制作过程基于tensorflow官方的custom-op仓库以及官网教程,并且在Ubuntu和Mac…

第8次实验:UDP

目的: 来看一下UDP(用户数据报协议)的细节。UDP是整个互联网上使用的一种传输协议。在不需要可靠性的情况下,作为TCP的替代品在互联网上使用。它在你的课文的第6.4节中有所涉及。在做这个实验之前,先复习一下这一部分 …

【精选】计算机网络教程(第7章网络安全)

目录 前言 第7章网络安全 1、公钥 2、私钥 3、数字签名 前言 总结计算机网络教程课程期末必记知识点。 第7章网络安全 1、公私密钥和对称密钥 公私密钥(或非对称密钥)和对称密钥是在密码学中用于加密和解密数据的两种不同的密钥类型。 公私密钥…

MySQL主从复制详解

目录 1. 主从复制的工作原理 1.1. 主从复制的角色 1.2. 主从复制的流程 2. 配置MySQL主从复制 2.1. 确保主服务器开启二进制日志 2.2. 设置从服务器 2.3. 连接主从服务器 2.4. 启动复制 3. 主从复制的优化与注意事项 3.1. 优化复制性能 3.2. 注意复制延迟 3.3. 处理…

Leetcode 376 摆动序列

题意理解: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 如果是摆动序列,前后差值呈正负交替出现 为保证摆动序列尽可能的长,我们可以尽可能的保留峰值,,删除上下坡的中间值&…

2023.12.17 关于 Redis 的特性和应用场景

目录 引言 Redis 特性 内存中存储数据 可编程性 可扩展性 持久化 支持集群 高可用性 Redis 优势 Redis 用作数据库 Redis 相较于 MySQL 优势 Redis 相较于 MySQL 劣势 Redis 用作缓存 典型场景 Redis 存储 session 信息 Redis 用作消息队列 初心 消息队列的…

redis之五种基本数据类型

redis存储任何类型的数据都是以key-value形式保存,并且所有的key都是字符串,所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是:String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的类型,v…

175. 电路维修(BFS,双端队列)

175. 电路维修 - AcWing题库 达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。 翰翰的家里有一辆飞行车。 有一天飞行车的电路板突然出现了故障,导致无法启动。 电路板的整体…

保姆级 Keras 实现 YOLO v3 二

保姆级 Keras 实现 YOLO v3 二 一. 数据准备二. 从 xml 或者 json 文件中读出标注信息三. K-Means 计算 anchor box 聚类尺寸读出所有标注框尺寸K-Means 聚类 四. 代码下载 上一篇 文章中, 我们完成了 YOLO v3 的网络定义, 相当于完成了前向计算功能, 但此时网络中的参数处于随…

MySQL数据库 函数

目录 函数概述 字符串函数 数值函数 日期函数 流程函数 函数概述 函数是指一段可以直接被另一段程序调用的程序或代码。也就意味着,这一段程序或代码在MysQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即…

前后端传参中遇见的问题

前后端传参经常容易出错,本文记录开发springBootMybatis-plusvuecli项目中出现的传参问题及解决办法 1.前后端没有跨域配置,报错 解决方法:后端进行跨域配置,拷贝CorsConfig类 package com.example.xxxx.config;import org.spr…

k8s-ingress 8

ExternalName类型 当集群外的资源往集群内迁移时,地址并不稳定,访问域名或者访问方式等会产生变化; 使用svc的方式来做可以保证不会改变:内部直接访问svc;外部会在dns上加上解析,以确保访问到外部地址。 …

2024年软件测试入坑指南,新人必看系列

本科非计算机专业,在深圳做了四年软件测试工作,从之前的一脸懵的点点点,到现在会点自动化测试,说一点点非计算机专业人员从事软件测试的心得体会,仅供参考交流。 如果你是非计算机专业,毕业不久&#xff0…

CMOS电源稳压器LDO

一、基本概述 TX6213是一款300mA Low Power LDO,输入电压2.5V~6.5V,输出范围1.0V~3.3V,输出电流300mA,PSRR为75dB 1KHz,压差为220mV IOUT200mA。 二、应用场景 MP3/MP4 Players Cellphones, radiophone, digital ca…

智能优化算法应用:基于适应度相关算法3D无线传感器网络(WSN)覆盖优化 - 附代码

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

C++设计模式-Builder 构建器

通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 一、动机 在软件系统中,有时候面临着“一个复…

Python:(Sentinel-1)如何解析SNAP输出的HDF5文件并输出为GeoTIFF?

博客已同步微信公众号:GIS茄子;若博客出现纰漏或有更多问题交流欢迎关注GIS茄子,或者邮箱联系(推荐-见主页). Python:(Sentinel-1)如何解析SNAP输出的HDF5文件并输出为GeoTIFF? 01 前言 最近…
最新文章