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

8.说说自己对Spring MVC的了解?

  MVC是一种设计模式,Spring MVC是一款很优秀的MVC框架。Spring MVC可以帮助我们进行更简洁的Web层开发,并且它天生与Spring框架集成。SpringMVC下我们一般把后端项目分为Service(处理业务),DAO层(数据库操作),Entity层(实体类),Controller层(控制层,返回数据给前台页面)。

Spring MVC的简单原理图如下:

9.SpringMVC的工作原理了解嘛?

流程说明:

1.客户端(浏览器)发送请求,直接请求到DispatcherServlet。

2.DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。

3.解析到对应的Handler(也就是我们平常说的controller)

4.HandlerAdapter会根据Handler来调用真正的处理器来处理请求和执行相对应的业务逻辑。

5.处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是逻辑上的View。

6.ViewResolver会根据逻辑View去查找实际的View。

7.DispatcherServlet把返回的Model传给View(视图渲染)。

8.把View返回给请求者(浏览器)。

10.spring框架中用到了哪些设计模式?

    1.工厂设计模式:Spring使用工厂模式通过Bean Factory和ApplicationContext创建Bean对象。

    2.代理设计模式:SpringAOP功能的实现。

    3.单例设计模式:Spring中的bean默认都是单例的。

    4.模版方法模式:Spring中的jdbcTemplate,hibernateTemplate等以Template结尾的对数据库操作的类,他们就使用到了模版模式。

   5.包装器设计模式:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。

   6.观察者模式:Spring事件驱动模型就是观察者模式很经典的一个应用。

   7.适配器模式:SpringAOP的增强或者通知(Advice)使用到了适配器模式,SpringMvc也是 用到了适配器模式适配controller。

11.@Component和@Bean的区别是什么?

   11.1.作用对象不同。@component注解作用于类,而@Bean注解作用于方法。

   11.2.@Component注解通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用@ComponentScan注解定义要扫描的路径)。@Bean注解通常是在标有该注解的方法中定义产生这个Bean,告诉Spring这是某个类的实例,当我需要用它的时候还给我。

  11.3.@Bean注解比@Component注解的自定义性更强,而且很多地方只能通过@Bean注解来注册Bean。比如当引用第三方库的类需要装配到Spring容器的时候,就只能通过@Bean注解来实现。

12.将一个类声明为Spring的Bean的注解有哪些?

    我们一般使用@Autowire注解去自动装配Bean。而想要把一个类标识为可以用@Autowired注解自动装配的Bean,可以采用以下的注解实现:

    1⃣️@Component注解。通用的注解,可标注任意类为Spring组件,如果一个Bean不知道属于哪一个层,可以使用@Component注解标注。

   2⃣️@Repository注解。对应持久层,即DAO层,主要用于数据库相关操作。

   3⃣️@Service注解。对应服务层,即Service层,主要涉及一些复杂的逻辑,需要用到DAO层注入。

  4⃣️@Controller注解。对应Spring MVC的控制层,即Controller层,主要用于接受用户请求并调用Service层方法返回数据给前端页面。

13.Spring事务管理的方式有几种?

   1⃣️编程式事务:在代码中硬编码(不推荐使用)。

   2⃣️声明式事务:在配置文件中配置(推荐使用),分为基于XML的声明式事务和基于注解的声明式事务。

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

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

相关文章

vue ui 一直卡在 Starting GUI..

1.如果项目一直卡在 Starting GUI… 2.解决方法 (切换数据源) npm config set registry http://registry.npm.taobao.org/3.成功解决

CGAL的锥形扳手

1、介绍 这一章描述了用于构建两种基于锥体的生成树的包:Yao图和Theta图,给定平面上的一组顶点和锥体边界的方向。支持精确和不精确的构造。在精确构造中,锥体边界是使用多项式的根来计算的,通过避免在计算中使用π来实现精确性。…

数据治理之数据梳理与建模

目录 一、什么是数据模型二、数据模型的类型概念模型概念模型的3个基本要素概念模型的用途 逻辑模型逻辑模型的特征逻辑模型的用途 物理模型物理模型特征物理模型用途 三、什么是数据梳理数据梳理两种流程自上而下梳理数据域梳理数据主题梳理数据实体梳理设计数据模型优缺点 自…

http状态码(三)401、403、404报错

一 401、403、404报错 ① 401和403 说明: 由于 nginx 导致的401、403很不常见,这里不再细讲,后续会讲解两个独特的案例1) 401 Unauthorized --> 权限认证机制、Cookie、Token --> 请求没有经过授权2) 403 Forbidden -->…

BEVFusion-mit复现与实践(nuscenes-mini数据集)

目录 一、CUDA版本11.1二、创建虚拟环境并激活三、安装pytorch四、安装openmpi五、安装功能包六、源码下载七、参数修改与编译八、配置nuscenes-mini九、复现十、实践 一、CUDA版本11.1 二、创建虚拟环境并激活 conda create -n bevfusion python3.8 conda activate bevfusio…

4.3 C++对象模型和this指针

4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include <iostream>class Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量…

SSM整合实战(Spring、SpringMVC、MyBatis)

五、SSM整合实战 目录 一、SSM整合理解 1. 什么是SSM整合&#xff1f;2. SSM整合核心理解五连问&#xff01; 2.1 SSM整合涉及几个IoC容器&#xff1f;2.2 每个IoC容器盛放哪些组件&#xff1f;2.3 IoC容器之间是什么关系&#xff1f;2.4 需要几个配置文件和对应IoC容器关系&…

Redis原理之网络通信协议笔记

目录 1. RESP协议 ​2. 自定义Socket连接Redis 1. RESP协议 2. 自定义Socket连接Redis public class MyRedisClient {static Socket s;static PrintWriter writer;static BufferedReader reader;static Object obj;public static void main(String[] args) {try {// 1.建立连…

uni-app的初使用(附源码学习)

uni-app代码编写&#xff0c;基本语言包括js、vue、css。以及ts、scss等css预编译器。 新建项目等基础指路&#xff1a; 关于uni-app的下载及使用-CSDN博客 1.vue文件 由三个一级节点组成&#xff0c;分别是template、script、style <template> </template><…

设计模式——外观模式(Facade Pattern)

概述 外观模式又称为门面模式&#xff0c;它通过引入一个外观角色来简化客户端与子系统之间的交互&#xff0c;为复杂的子系统调用提供一个统一的入口&#xff0c;降低子系统与客户端的耦合度&#xff0c;且客户端调用非常方便。它是一种对象结构型模式。外观模式结构图如下所示…

ansible的脚本—playbook剧本

目录 一、playbook 1、简介 2、playbook组成部分&#xff1a; 3、如何编写Playbook&#xff1f; 4、语句的横向/纵向写法 二、playbook模版实例&#xff1a; 1、playbook模版&#xff1a; 2、playbook的条件判断&#xff1a; 3、playbook中的循环&#xff1a; 4、循环…

优维科技荣获第二届中国赛宝信息技术应用创新优秀解决方案三等奖

近日&#xff0c;“第二届中国赛宝信息技术应用创新优秀解决方案”评选活动圆满结束。优维科技所提交的《Hyperlnsight超融合持续观测解决方案》、《EasyOps一体化运维平台》从全国近300份申报方案中脱颖而出&#xff0c;荣获2023中国赛宝信息技术应用创新优秀解决方案奖。 本…

【操作系统】什么是进程?

文章目录 进程进程的属性进程的状态挂起 进程 进程是一个可并发执行的具有独立功能的程序关于某个数据集合的执行过程&#xff0c;也是操作系统进行资源分配和保护的基本单位。 进程的属性 结构性&#xff1a; 共享性&#xff1a;同一程序运行于不同数据集合上构成不同的进程…

C++用哈希表封装unordered_set和unordered_map

目录 前言 一、修改kv模型为data模型 1.添加MyUnorderedSet.h和MyUnorderedMap.h 2.修改HashNode 3.修改HashTable 二、普通迭代器 三、const迭代器 四、unordered_map重载operator[] 总结 前言 在上一篇文章中&#xff0c;我们手写了一份哈希表&am…

【图神经网络】在节点分类任务中无特征节点的特征表示

无特征节点的特征表示 节点度数degree pagerank 以pagerank起源的应用场景为例&#xff0c;不是所有的网站都是同等重要的&#xff0c;所以需要根据结构信息对节点进行排序。 直觉上&#xff0c;如果一个网站它有很多链接&#xff0c;它就很重要&#xff0c;举例来说&#…

Java版企业电子招标采购系统源码—鸿鹄电子招投标系统-企业战略布局下的采购寻源

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…

C# WPF上位机开发(业务主流程才是核心)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】前面我们说了很多的c# wpf编程技术,里面有控件,有绘图,有数据库,有多线程等技术。但是他们都属于实现的部分,没有和具体的行业进行挂钩,相当于是通用技术部分。这个通用部分一般通过书…

【深度学习】序列生成模型(五):评价方法计算实例:计算BLEU-N得分【理论到程序】

文章目录 一、BLEU-N得分&#xff08;Bilingual Evaluation Understudy&#xff09;1. 定义2. 计算N1N2BLEU-N 得分 3. 程序 给定一个生成序列“The cat sat on the mat”和两个参考序列“The cat is on the mat”“The bird sat on the bush”分别计算BLEU-N和ROUGE-N得分(N1或…

Dubbo面试题及答案,持续更新

在准备Dubbo相关的面试题时&#xff0c;我发现网络上的资源往往缺乏深度和全面性。为了帮助广大Java程序员更好地准备面试&#xff0c;我花费了大量时间进行研究和整理&#xff0c;形成了这套Dubbo面试题大全。 这套题库不仅包含了一系列经典的Dubbo面试题及其详尽答案&#x…

语音识别与人机交互:发展历程、挑战与未来前景

导言 语音识别技术作为人机交互领域的重要组成部分&#xff0c;近年来取得了巨大的发展。本文将深入研究语音识别与人机交互的发展历程、遇到的问题、解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。我们将探讨在这个领域&#xff0c;哪一方能取得竞争…