当前位置: 首页 > news >正文

Java开发框架和中间件面试题(3)

14.Spring事务中的隔离级别有哪几种?

 在TransactionDefinition接口中定义了五个表示隔离级别的常量:

    1⃣️ISOLATION  DEFAULT:使用后端数据库默认的隔离级别,Mysql默认采用的可重复读隔离级别;Oracle默认采用的读已提交隔离级别。

   2⃣️ISOLATION READ  UNCOMMITTED:最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读,幻读或不可重复读。

   3⃣️ISOLATION READ COMMITED:允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍可能发生。

   4⃣️ISOLATION REPEAABLE  READ:对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。

  5⃣️ISOLATION SERIALIZABLE:最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读,不可重复读以及幻读。但是这将严重影响程序的性能。通常情况下也不会用到该级别。

  15.Spring事务中有哪几种事务传播行为?

    在TransactionDefinition接口中定义了7个表示事务传播行为的常量。

      支持当前事务的情况:

         1.PROPAGATION  REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。

       2.PROPAFGATION  MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。(mandatory:强制性)。

      3.PROPAGATION SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。

   不支持当前事务的情况:

     4.PROPAGATION   REQUIRES  NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。

   5.PROPAGATION  NOT   SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。

   6.PROPAGATION  NEVER:以非事务的方式运行,如果当前存在事务,则抛出异常。

   其他情况:

   7.PROPAGATION  NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于PROPAGATION REQUIRED。

16.BeanFactory和ApplicationContext有什么区别?

      ApplicationContext提供了一种解析文本消息的方法,一种加载文件资源(如图像)的通用方法,他们可以将事件发布到注册为监听器的bean。此外,可以在应用程序上下文中以声明方式处理容器中的容器或者容器上的操作,这些操作必须以编程方式与BeanFactory一起处理。

ApplicationContext实现MessageSource,一个用于获取本地化消息的接口,实际的实现是可插入的。

17.如何定义bean的范围?

  在Spring中定义一个类时,我们也可以为bean声明一个范围。他可以通过bean定义中的scope属性定义。例如,当Spring每次需要生成一个新的bean的实例时,bean的scope属性就是原型。另外一方面,当每次需要Spring都必须返回相同的bean实例时,bean的scope属性必须设置为singleton。

18.可以通过多少种方式完成依赖注入?

   1.构造函数注入

   2.setter注入

   3.接口注入

19.什么是SpringBoot?

    Springboot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要简化了使用Spring的难度,省简了繁重的配置,提供了各种启动器,开发者能够快速上手。

    1.用来简化Spring应用的初始化搭建以及开发过程,使用特定的方式来进行配置。

    2.创建独立的Spring引用程序main方法运行

    3.嵌入的tomcat无需部署war文件

    4.简化maven配置

    5.自动配置Spring添加对应的功能starter自动化配置

    6.SpringBoot来简化Spring应用开发,约定大于配置,去繁化简

20.为什么使用SpringBoot?

 1.独立运行

   SpringBoot内嵌了各种Servlet容器,Tomcat,Jetty等,现在不再需要打成war包部署到容器中,SpringBoot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。

 2.简化配置

   spring boot starter web 启动器自动依赖其他组件,减少了maven的配置。

3.自动配置

  SprintBoot能根据当前类路径下的类,jar包来自动配置bean,如添加一个Spring boot  starter  web启动器就能拥有web的功能,无需其他配置。

4.无代码生成和XML配置

Springboot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。

5.应用监控

Springboot提供一系列端点可以监控服务以及应用,做健康检测。

21.Spring、SpringMVC和Springboot有什么区别?

  1.Spring

  Spring最重要的特征是依赖注入。所有Spring Modules不是依赖注入就是IOC控制反转。

  当我们恰当的使用DI或者IOC的时候,可以开发松耦合应用。

  2.Spring MVC

   SpringMVC提供了一种分离式的方法来开发Web应用。通过运用像DispatcherServlet,Model AndView和ViewResolver等一些简单的概念,开发Web应用将会变得非常简单。

3.SpringBoot

  Spring和SpringMVC的问题在于需要配置大量的参数。

  SpringBoot通过一个自动配置和启动的项来解决这个问题。

22.SpringBoot的自动配置原理?

   在Spring程序main方法中,添加@SpringBootApplication或者@EnableAutoConfiguration会自动去maven中读取每个starter中的spring.factories文件,该文件里面配置了所有需要被创建的Spring容器中的bean。

 23.SpringBoot的核心注解是哪些?他主由哪几个注解组成的?

    启动类上面的注解是@SpringBootApplication,他也是Spring Boot的核心注解,主要组合包含了以下3个注解:

   @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。

  @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置的功能。

          @SpringBootApplication(exclude={DataSourceConfiguration.class});

@ComponentScan:Spring组件扫描。

24.SpringBoot的核心配置文件有哪几个?他们的区别是什么?

  Spring Boot的核心配置文件是application和bootstrap配置文件。

  application配置文件这个容易理解,主要用于Springboot项目的自动化配置。

  bootstrap配置文件有以下几个应用场景:

        使用Spring Cloud Config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。

    一些固定的不能被覆盖的属性。

    一些加密/解密的场景。

25.什么是SpringBoot Starter?有哪些常用的?

   和自动配置一样,Spring Boot Starter的目的也是简化配置,而SpringBoot Starter解决的是依赖管理配置复杂的问题,有了它,当我需要构建一个Web应用程序时,不必再遍历所有的依赖包,一个一个地添加到项目的依赖管理中,而是只需要一个配置Spring boot starter web,同理,如果想引入持久化功能,可以配置spring boot starter  data jpa。

Spring Boot也提供了其他的启动器项目包,包括用于开发特定类型应用程序的典型依赖项。

        spring  boot starter web  services

SOAP WEB  SERVICES

    spring  boot starter web 

WEB和RESTFUL应用程序

    spring boot  starter jdbc  传统的JDBC

   spring  boot  starter  test   单元测试和集成测试

   spring  boot starter hateoas    为服务添加hateoas

   spring boot starter  security 使用SpringSecurity进行身份验证和授权

   spring boot starter data jpa 带有Hibernate的spring data jpa 

   spring boot starter data  rest 使用spring data rest 公布简单的rest服务

26.spring boot starter parent 有什么作用?

    我们知道,新建一个Spring Boot项目,默认都是有parent的,这个parent就是spring  boot  starter  parent,spring  boot  starter  parent主要有如下作用:

     定义了Java编译版本

     使用UTF8格式编码

      继承自spring  boot dependencies,这里面定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时不需要写版本号

     执行打包操作的配置

     自动化的资源过滤

     自动化的插件配置

  

   

   

相关文章:

Java开发框架和中间件面试题(3)

14.Spring事务中的隔离级别有哪几种? 在TransactionDefinition接口中定义了五个表示隔离级别的常量: 1⃣️ISOLATION DEFAULT:使用后端数据库默认的隔离级别,Mysql默认采用的可重复读隔离级别;Oracle默认采用的读已提…...

React面试题

1. 什么是 React? React 是一个用于构建用户界面的 JavaScript 库。它由 Facebook 开发并开源,广泛应用于现代 Web 应用程序的开发中。 2. React 中的组件是什么? 组件是 React 中构建用户界面的基本单位。它们是可重用且自包含的代码块&a…...

机器学习-数学学习汇总

***I数学只是一个工具,会使用,能解决问题就可以了,精确例如到3.14够用就可以了*** 微积分作用:解决非线性问题 学习:27分。 高中数学: 1.高中数学所有知识点表格总结,高中知识点一个不漏&am…...

17个常用经典数据可视化图表与冷门图表

数据可视化是创建信息图形表示的过程。随着可视化技术的飞速发展,可以利用强大的可视化工具选择合适的数据可视化图表来展示数据。以下专业人士都应该知道的一些最重要的数据可视化图表。 常见数据可视化图表 饼图 饼图是最常见和最基本的数据可视化图表之一。饼图…...

(五)Python 垃圾回收机制

一、垃圾回收的工作原理 Python的垃圾回收机制是自动的,负责管理程序中的内存。它基于两种主要技术:引用计数和循环引用检测器。 引用计数 每当一个对象被引用时,Python会增加该对象的引用计数;每当一个对象不再被引用时&#…...

策略模式(组件协作)

策略模式(组件协作) 链接:策略模式实例代码 注解 目的 正常情况下,一个类/对象中会包含其所有可能会使用的内外方法,但是一般情况下,这些常使用的类都是由不同的父类继承、组合得来的,来实现…...

每日一题-----逆序字符串

大家好我是Beilef,在一个美好的下午我意外接触到编程并且产生了兴趣,哈哈我要努力成为一个跨界者,让我们一起加油吧O(∩_∩)O 文章目录 目录 文章目录 前言 大家好请上车 一、逆序字符串 题⽬描述: 输⼊⼀个字符串,写…...

js两个对象数组合并。并且去掉里边某个属性相同的对象

要合并两个JavaScript对象数组并去除其中某个属性相同的对象,您可以使用concat()方法将两个数组合并,然后使用reduce()方法进行筛选。 以下是一个示例代码,演示了如何合并两个对象数组并去除其中某个属性相同的对象 const array1 [{ id: 1…...

创建重试机制

要自己创建重试机制,可以使用循环结构来实现。以下是一个简单的重试机制的示例代码: java public class RetryExample { public static void main(String[] args) { int maxRetryTimes 3; // 最大重试次数 int retryInterval 1000; /…...

[c]统计数字

题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 输入描述: 第1行是整数…...

采用ODP.NET 批量进行数据同步

因开发、测试场景经常需要模拟机生产环境的数据,原同事开发了一个ado.net图形化同步工具,对非技术人员操作友好,但对技术员使用并不方便,每次同步需源库数据与目标的数据源字段进行配置,且同步大数据时慢,因…...

【vue滚动条插件vuescroll】【vue自定义滚动条】

文章目录 前言一、使用步骤1.下载2.引入库三、在组件中如何使用?四、跳转到顶部的方法scrollTo() 五、效果总结 前言 由于浏览器自带的滚动条比较不符合设计图,所以在大部分项目中,我们都会自定义滚动条的样式,来还原设计图&…...

python 1200例——【8】冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 冒泡排序的代码: def bubble_sort(arr):n = len(arr)for i in range(n):#…...

在PyTorch中设置随机数生成器的种子值

在PyTorch中设置随机数生成器的种子值的方法 CPU:可以使用torch.manual_seed()函数 GPU:需要额外设置torch.cuda.manual_seed()来设置GPU上的随机数生成器种子值。 import torch# 设置随机种子 torch.manual_seed(0)if torch.cuda.is_available():tor…...

用手机做无人直播怎么做?

用手机进行无人直播已经成为了一种新兴的方式,给我们的生活带来了便利和创新。无人直播是指通过手机进行实时转播,而无需人工操作的一种直播形式。以下将介绍如何用手机实现无人直播。 首先,要实现手机无人直播,我们需要一个稳定…...

【zookeeper经典应用实战】

文章目录 Zookeeper主要方法 Zookeeper Java客户端实战 ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。可供选择的Java客户 端API有: ZooKeeper官方的Java客户端API。 第三方的Java客户端API,比如Curator。 ZooKeeper官方的客户端…...

12月25日作业

串口发送控制命令&#xff0c;实现一些外设LED 风扇 uart4.c #include "uart4.h"void uart4_config() {//1.使能GPIOB\GPIOG\UART4外设时钟RCC->MP_AHB4ENSETR | (0x1 << 1);RCC->MP_AHB4ENSETR | (0x1 << 6);RCC->MP_APB1ENSETR | (0x1 <…...

React学习计划-React16--React基础(五)脚手架创建项目、todoList案例、配置代理、消息订阅与发布

一、使用脚手架create-react-app创建项目 react脚手架 xxx脚手架&#xff1a;用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置&#xff08;语法检查、jsx编译、devServe…&#xff09;下载好了所有相关的依赖可以直接运行一个简单的效果 react提供了一个…...

C语言中switch语句中的case后()

基本格式 switch(表达式) { case整型数值1&#xff1a;语句1&#xff1b; ...... case整型数值n&#xff1a;语句n&#xff1b; default:语句n1; } 执行过程 计算“表达式”的值&#xff0c;假设为m从第一个case开始&#xff0c;比较“整型数值1”和m,如果相等&#xff0c…...

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard

这篇文章&#xff0c;主要介绍如何安装RocketMQ可视化工具rocketmq-dashboard。 目录 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard 1.2、修改配置文件 1.3、打包工程 1.4、启动rocketmq-dashboard 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard rocketm…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...

初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)

零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...