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,这里面定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时不需要写版本号

     执行打包操作的配置

     自动化的资源过滤

     自动化的插件配置

 

  

 

   

   

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

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

相关文章

Linux一行命令配置jdk环境

使用方法: 压缩包上传 到/opt, 更换命令中对应的jdk包名即可。 注意点:jdk-8u151-linux-x64.tar.gz 解压后名字是jdk1.8.0_151 sudo tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt && echo export JAVA_HOME/opt/jdk1.8.0_151 | sudo tee -a …

反序列化漏洞原理、成因、危害、攻击、防护、修复方法

反序列化漏洞是一种安全漏洞,它允许攻击者将恶意代码注入到应用程序中。这种漏洞通常发生在应用程序从不安全的来源反序列化数据时。当应用程序反序列化数据时,它将数据从一种格式(例如JSON或XML)转换为另一种格式(例如…

Mac版MySQL开启服务及终端进入MySQL的基本操作

Mac版MySQL开启服务及终端进入MySQL的基本操作 一、开启mysql服务 下载完成后,系统偏好设置->MySQL 如图显示,左边是绿色的,右边的按键显示是Stop MySQL Server,说明服务已经开启 二、终端进入mysql 1.输入下面语句并回车…

AI绘画中VAE压缩图像

介绍 在Stable Diffusion中,所有的去噪和加噪过程并非在图像空间直接进行,而是通过VAE模块将图像编码到一个低维空间。 这个低维空间的“分辨率”低于原始图像空间,有利于快速地完成加噪和去噪过程。 最后再将编码空间中的噪声表示解码恢复为图像空间,完成去噪或加噪操作。 …

JDBC学习,从入门到入土

JDBC引入 JDBC概念: JDBC是使用Java语言操作关系型数据库的一套API。全称:(Java DataBase Connectivity)Java数据库连接 JDBC的本质: 官方定义的一套操作所有关系型数据库的规则,即接口。 各个数据库厂…

c语言二分查找

前言 二分查找法算法,也叫折半查找算法(对半处理会提高寻找目标数字的效率); 作用: 在一串有序的数字中,能快速寻找到你输入的数字,是一种很高效的查询算法。 …

医学实验室检验科LIS信息系统源码

实验室信息管理是专为医院检验科设计的一套实验室信息管理系统,能将实验仪器与计算机组成网络,使病人样品登录、实验数据存取、报告审核、打印分发,实验数据统计分析等繁杂的操作过程实现了智能化、自动化和规范化管理。 实验室管理系统功能介…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题:Service 是否通过 DNS 工作?10. 总结1、POD启动异常、部分节点无法启动p…

【JAVA面试题】什么是对象锁,什么是类锁?

🍎 个人博客 :个 人 主 页 🏆个人专栏:多线程JAVA ⛳️ 功 不 唐 捐 ,玉 汝 于 成 目录 前言 回答 对象锁(Object Lock): 类锁(Class Lock)&#xff1…

如何在Windows上搭建WebDAV服务并通过内网穿透实现公网访问

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透,将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav,并且结合cpolar的内网穿透工具实现在公网访…

市场复盘总结 20231222

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: SELECT CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封板, 120) AS 最后封板,涨停分析,_3日涨幅百…

49.网游逆向分析与插件开发-游戏反调试功能的实现-软件调试器设计的基本原理

图0: 下方是一个简化过的代码 做一个软件调试器最基本的是,首先要调试一个进程那么就要有一个进程 拿x96dbg来讲调试一个进程有两种方式,第一种通过附加(如图1),通过附加可以对已经创建的进程进行调试&…

深度剖析JDK 11全新特性:编程艺术的巅峰之作

欢迎来到我的博客,代码的世界里,每一行都是一个故事 深度剖析JDK 11全新特性:编程艺术的巅峰之作 前言字符串处理方法新增http client 的增强功能ZGC(低延迟垃圾回收器)的改进对Stream、Optional、集合API进行增强Stre…

Ps:矩形工具

使用矩形工具 Rectangle Tool可以绘制矩形形状(矢量形状,或者是基于像素的形状)和路径(形状轮廓)。 快捷键:U Ps 2021 年 3 月版开始删除了“圆角矩形工具”。现在可通过矩形工具的“圆角半径”选项以及画布…

【WPF.NET开发】WPF中的数据绑定

本文内容 什么是数据绑定数据绑定基本概念数据绑定的示例创建绑定数据转换绑定到集合数据模板化数据验证调试机制 Windows Presentation Foundation (WPF) 中的数据绑定为应用呈现数据并与数据交互提供了一种简单而一致的方法。 元素能够以 .NET 对象和 XML 的形式绑定到不同…

postgresql|数据库|LVM快照热备冷恢复数据库的思考

一, LVM快照备份的意义 数据库备份一直是数据库运维工作中的重点,一个完备的备份不仅仅是仅有后悔药的功能,还可能有迁移数据库的作用。 那么,数据库备份系统我们需要的,也就是看重的是四个点,甚至更多的…

金蝶云星空打开应用报错‘D:\WorkSpace\XXXX\XXXX_k3Cloud‘ is already locked.

文章目录 金蝶云星空打开应用报错D:\WorkSpace\XXXX\XXXX_k3Cloud is already locked.报错界面报错内容原因分析解决方案工作空间下清除项目Clean up应用下-清除SVN锁定 重新打开应用就可以了 金蝶云星空打开应用报错’D:\WorkSpace\XXXX\XXXX_k3Cloud’ is already locked. 报…

IMX6Q平台下双通道LVDS屏幕linux驱动设备树调试笔记

一、 LVDS简单理解 LVDS粗略了解 LVDS Low-Voltage Differential Signaling 低电压差分信号,属于平衡传输信号。这种技术的核心是采用极低的电压摆幅高速差动传输数据,从而有以下特点:低功耗—低误码率—低串扰—低抖动—低辐射 良好的信号…

【linux】用grep或者pgrep查找进程ID

一、用grep ps aux|grep 字符串|awk {print $2} 像上面这样运行,还会同时显示grep的进程ID。 需要再添加grep的反向查找命令,即查找不含有 "grep" 字段的行:grep -v grep。 ps aux | grep 字符串 | grep -v grep | awk {print …

2015年第四届数学建模国际赛小美赛A题飞机上的细长座椅解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 A题 飞机上的细长座椅 原题再现: 航空公司座位是指在旅途中乘客可以乘坐的座位。一些航空公司现在推出了新的经济舱“超薄”座位。这些座椅除了重量较轻外,理论上还允许航空公司在不显著影响乘客舒适度的情况下增加运…