太原理工大学软件设计与体系结构 --javaEE

这个是简答题的内容

选择题的一些老师会给你们题库,一些注意的点我会做出文档在这个网址

项目目录预览 - TYUT复习资料:复习资料 - GitCode

希望大家可以给我一些打赏

什么是Spring的IOC和DI

IOC 是一种设计思想,它将对象的创建和对象之间的依赖关系管理,从应用程序本身转移到一个外部容器(如 Spring 容器)。在传统编程中,对象通常由自己负责创建和管理依赖关系,而 IOC 反转了这种控制,使得对象无需关心自身的创建和依赖的获取,由容器来负责这些工作

DI 是 IOC 的一种实现方式。它是指在运行时,由容器将依赖对象传递给需要它的组件。Spring 容器负责创建对象,并将对象所依赖的其他对象通过一定的方式(如构造函数、setter 方法等)注入到对象中。

spring中实现依赖注入的两种方式

Spring的实现方式通常有两种:属性setter方法注入和构造方法注入。

属性setter方法注入:是指IoC容器使用setter方法来注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter方法的依赖注入。

构造方法注入:是指IoC容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。

简述控制器方法中的ModelAndView,String,void三种返回类型的作用

ModelAndView类型中可以添加Model数据,并指定视图;

String类型的返回值可以跳转视图,但不能携带数据;

void类型主要在异步请求时使用,它只返回数据,而不会跳转视图。

AOP专业术语并解释

@Aspect:配置切面,@Pointcut:配置切点,@Before:配置前置通知,@After:配置后置通知,@Around:配置环绕方式,@AfterReturning:配置返回通知,@AfterThrowing:配置异常通知.

Mybaits的工作执行流程

(1)读取MyBatis配置文件mybatis-config.xml。

(2)由MyBatis配置文件加载映射文件Mapper.xml。

(3)通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。

(4)由会话工厂创建SqlSession对象。

(5)MyBatis底层定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态的生成需要执行的SQL语句。

(6)在Executor接口的执行方法中,包含一个MappedStatement类型的参数,该参数是对映射信息的封装。

(7)在执行方法时,MappedStatement对象会对用户执行SQL语句的输入参数进行定义封装。

(8)在数据库中执行完SQL语句后,MappedStatement对象会对SQL执行输出的结果进行定义封装。

Mybaits关联查询映射的两种处理方式

主要通过两种方式:嵌套查询和嵌套结果。

嵌套查询是指通过执行另外一条SQL映射语句来返回预期的复杂类型;

嵌套结果是使用嵌套结果映射来处理重复的联合结果的子集。

Mybaits中动态SQL的主要元素及说明

MyBatis动态SQL中的主要元素及说明如下:

< if> :判断语句,用于单条件分支判断;

< choose>(< when>、< otherwise>):相当于 Java中的 switch…case…default 语句,用于多条件分 支判断;

< where>、< trim> 、< set>:辅助元素,用于处理一些 SQL 拼装、特殊字符问题;

< foreach>:循环语句,常用于 in 语句等列举条件中;

< bind>:从 OGNL 表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的 sql 中。

Mybaits映射文件的主要元素及其作用

<mapper> 映射文件的根元素该元素只有一个namespace属性,区分不同的mapper,全局唯一

<insert> 插入映射语句

<delete> 映射删除语句

<update> 更新语句

<select> 查询语句

<sql> 定义可重用的SQL语句

<resultmap> 数据库结果集和对象的映射关系

SpringMvc框架的工作执行流程

1)用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器DispatcherServlet拦截。

(2)DispatcherServlet拦截到请求后,会调用HandlerMapping(处理器映射器)。

(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

(3)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)。

(4)HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。

(5)Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。

(6)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。

(7)前端控制器请求视图解析器根据逻辑视图名解析真正的视图。

(8)ViewResolver解析后,会向DispatcherServlet中返回具体的View(视图)。

(9)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。

(10)前端控制器向用户响应结果。

SpringMvc的特点

1.是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。

2.灵活性强,易于与其他框架集成。

3.提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。

4.可自动绑定用户输入,并能正确的转换数据类型。

5.内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。

6.支持国际化。可以根据用户区域显示多国语言。

请简述< sql>元素的作用及使用。

作用: 定义可重用的SQL代码片段。 使用: 先通过< sql>元素定义重用的代码片段,然后在需要使用的地方使用< include>元素的refid属性引用了自定义的代码片段。

SpringMVC数据绑定

AOP

ORM

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中

AOP两种代理方式的区别

  • JDK 动态代理:

    • 基于 Java 反射机制实现。JDK 动态代理会在运行时创建一个实现了目标接口的代理类,通过反射来调用目标对象的方法,并在调用前后插入切面逻辑。

    • 要求目标对象必须实现至少一个接口,因为代理类是通过实现这些接口来生成的。

  • CGLIB 代理:

    • 基于继承机制实现。CGLIB 通过字节码生成技术,在运行时创建目标类的子类作为代理类,然后重写目标类的方法,在方法调用前后织入切面逻辑。

    • 即使目标对象没有实现接口,CGLIB 也能为其创建代理。但如果目标类被声明为final,则无法使用 CGLIB 代理,因为final类不能被继承。

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

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

相关文章

CNN Test Data

由于数据量过大&#xff0c;打不开了 搞一组小的吧。收工睡觉 https://download.csdn.net/download/spencer_tseng/90256048

Windows下调试Dify相关组件(2)--后端Api

1.部署依赖的服务&#xff08;代码最外层的docker目录&#xff09; 1.1 将middleware.env.example复制&#xff0c;并改名为middleware.env。 1.2 查看docker-compose.middleware.yaml&#xff0c;有5个服务 db&#xff1a;postgres数据库。 redis&#xff1a;redis缓存。 sa…

从预训练的BERT中提取Embedding

文章目录 背景前置准备思路利用Transformer 库实现 背景 假设要执行一项情感分析任务&#xff0c;样本数据如下 可以看到几个句子及其对应的标签&#xff0c;其中1表示正面情绪&#xff0c;0表示负面情绪。我们可以利用给定的数据集训练一个分类器&#xff0c;对句子所表达的…

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中&#xff0c;阅读了官方文档&#xff0c;在之前做flutter时候&#xff0c;经常使用overlay&#xff0c;使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…

基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)

本篇技术博文摘要 &#x1f31f; 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤&#xff1b;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 &#x1f4d8; 在这个快速发展的技术时代&#xff0c;与时俱进是每个IT人的必修课。我…

DeepSeek:性能强劲的开源模型

deepseek 全新系列模型 DeepSeek-V3 首个版本上线并同步开源。登录官网 chat.deepseek.com 即可与最新版 V3 模型对话。 性能对齐海外领军闭源模型​ DeepSeek-V3 为自研 MoE 模型&#xff0c;671B 参数&#xff0c;激活 37B&#xff0c;在 14.8T token 上进行了预训练。 论…

Elastic-Job相关

文档参考视频&#xff1a;09_SpringBoot案例演示_哔哩哔哩_bilibili 一、Elastic-Job介绍 Elastic-Job 是一个轻量级、分布式的任务调度框架&#xff0c;旨在解决分布式环境下的定时任务调度问题。 1.1. Elastic-Job 的核心组件 Elastic-Job 是由多个核心组件构成的&#x…

【Linux】文件 文件描述符fd

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 &#x1f33b;个人主页&#xff1a;路飞雪吖~ 一、C文件接口 &#x1f31f;写文件 &#x1f320;小贴士&#xff1a; &#x1f320;stdin && stdout && stderr Linux下…

Java Spring Boot实现基于URL + IP访问频率限制

点击下载《Java Spring Boot实现基于URL IP访问频率限制(源代码)》 1. 引言 在现代 Web 应用中&#xff0c;接口被恶意刷新或暴力请求是一种常见的攻击手段。为了保护系统资源&#xff0c;防止服务器过载或服务不可用&#xff0c;需要对接口的访问频率进行限制。本文将介绍如…

QML states和transitions的使用

一、介绍 1、states Qml states是指在Qml中定义的一组状态&#xff08;States&#xff09;&#xff0c;用于管理UI元素的状态转换和属性变化。每个状态都包含一组属性值的集合&#xff0c;并且可以在不同的状态间进行切换。 通过定义不同的状态&#xff0c;可以在不同的应用场…

SpringCloud

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff1a;将业务的所有功…

DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细

实现功能&#xff1a;DSP28379D-LED灯闪烁 :matlab为2019a :环境建立见之前文章 Matlab2019a安装C2000 Processors超详细过程 matlab官网链接&#xff1a; Getting Started with Embedded Coder Support Package for Texas Instruments C2000 Processors Overview of Creat…

java_将数据存入elasticsearch进行高效搜索

使用技术简介&#xff1a; (1) 使用Nginx实现反向代理&#xff0c;使前端可以调用多个微服务 (2) 使用nacos将多个服务管理关联起来 (3) 将数据存入elasticsearch进行高效搜索 (4) 使用消息队列rabbitmq进行消息的传递 (5) 使用 openfeign 进行多个服务之间的api调用 参…

最近在盘gitlab.0.先review了一下docker

# 正文 本猿所在产品的代码是保存到了一个本地gitlab实例上&#xff0c;实例是别的同事搭建的。最近又又又想了解一下&#xff0c;而且已经盘了一些了&#xff0c;所以写写记录一下。因为这个事儿没太多的进度压力&#xff0c;索性写到哪儿算哪儿&#xff0c;只要是新了解到的…

计算机网络(四)网络层

4.1、网络层概述 简介 网络层的主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传输 这些异构型网络N1~N7如果只是需要各自内部通信&#xff0c;他们只要实现各自的物理层和数据链路层即可 但是如果要将这些异构型网络互连起来&#xff0c;形成一个更大的互…

AI人工智能(2):机器学习

1 简介 机器学习&#xff08;Machine Learning&#xff09;是人工智能&#xff08;AI&#xff09;的一个分支&#xff0c;它使计算机系统能够利用数据和算法自动学习和改进其性能。机器学习是让机器通过经验&#xff08;数据&#xff09;来做决策和预测。机器学习已经广泛应用于…

Photon最新版本PUN 2.29 PREE,在无网的局域网下,无法连接自己搭建的本地服务器

1.图1为官方解答 2.就是加上这一段段代码&#xff1a;PhotonNetwork.NetworkingClient.SerializationProtocol SerializationProtocol.GpBinaryV16; 完美解决 unity 商店最新PUN 2 插件 不能连接 &#xff08;环境为&#xff1a;本地局域网 无外网情况 &#xff09; …

android 官网刷机和线刷

nexus、pixel可使用google官网线上刷机的方法。网址&#xff1a;https://flash.android.com/ 本文使用google线上刷机&#xff0c;将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…

Qt官方下载地址

1. 最新版本 Qt官方最新版本下载地址&#xff1a;https://www.qt.io/download-qt-installer 当前最新版本Qt6.8.* 如下图&#xff1a; 2. 历史版本 如果你要下载历史版本安装工具或者源码编译方式安装&#xff0c;请转至此链接进行下载&#xff1a;https://download.qt.i…

带格式 pdf 翻译

支持 openAI 接口&#xff0c;国内 deepseek 接口兼容 openAI 接口&#xff0c; deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate