太原理工大学软件设计与体系结构 --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.mzph.cn/web/65788.shtml

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

相关文章

深度学习知识点:LSTM

文章目录 1.应用现状2.发展历史3.基本结构4.LSTM和RNN的差异 1.应用现状 长短期记忆神经网络&#xff08;LSTM&#xff09;是一种特殊的循环神经网络(RNN)。原始的RNN在训练中&#xff0c;随着训练时间的加长以及网络层数的增多&#xff0c;很容易出现梯度爆炸或者梯度消失的问…

mmdet

一&#xff0c;configs/_base_ 1.default_runtime.py 2.schedule_1x.py 二&#xff0c;mmdet 1.datasets/coco.py/CocoDataset METAINFO {classes:(milk, red, spring, fanta, sprite, pepsi, king, ice, cola, scream ),# palette is a list of color tuples, which is us…

ElasticSearch 认识和安装ES

文章目录 一、为什么学ElasticSearch?1.ElasticSearch 简介2.ElasticSearch 与传统数据库的对比3.ElasticSearch 应用场景4.ElasticSearch 技术特点5.ElasticSearch 市场表现6.ElasticSearch 的发展 二、认识和安装ES1.认识 Elasticsearch&#xff08;简称 ES&#xff09;2.El…

第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法

时间轴&#xff1a; Java反射相关类图解&#xff1a; 反射&#xff1a; 1、什么是 Java 反射 参考&#xff1a; https://xz.aliyun.com/t/9117 Java 提供了一套反射 API &#xff0c;该 API 由 Class 类与 java.lang.reflect 类库组成。 该类库包含了 Field 、 Me…

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2) 下面我们继续来介绍AutoSAR CP分层架构&#xff0c;下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计&#xff0c;下面让我们来一起学习一下。 Introductio…

css面试常考布局(圣杯布局、双飞翼布局、三栏布局、两栏布局、三角形)

两栏布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

网络攻击行为可视化分析系统【数据分析 + 可视化】

一、系统背景 随着信息技术的快速发展&#xff0c;网络已成为现代社会不可或缺的一部分。然而&#xff0c;与此同时&#xff0c;网络攻击手段也日益多样化和复杂化&#xff0c;给企业和个人的信息安全带来了极大的威胁。传统的网络攻击分析方法往往依赖于人工分析和处理大量的…

利用obs studio制作(人像+屏幕)录制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能强大的开源软件&#xff0c;它使用户能够直接从电脑录制视频和直播内容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平台。它在需要直播或录制屏幕活动的游戏玩家、YouTube 用户和专业人士…

C# GDI+的DrawString无法绘制Tab键的现象

【啰嗦2句】 现在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以这个问题估计也冷门。没关系&#xff0c;分享给特定需要的人也不错。 【问题现象】 工作中开发了一个报告编辑器&#xff0c;实现图文排版等功能&#xff0c;用着没什么问题&#xff0c;直到有一天…

夯实前端基础之HTML篇

知识点概览 HTML部分 1. DOM和BOM有什么区别&#xff1f; DOM&#xff08;Document Object Model&#xff09; 当网页被加载时&#xff0c;浏览器会创建页面的对象文档模型&#xff0c;HTML DOM 模型被结构化为对象树 用途&#xff1a; 主要用于网页内容的动态修改和交互&…

SD ComfyUI工作流 老照片修复上色

文章目录 老照片修复上色SD模型Node节点工作流程开发与应用效果展示老照片修复上色 该工作流专门设计用于老照片的修复和上色,通过一系列高级的图像处理技术,包括深度图预处理、面部修复、上色和图像放大等步骤,来恢复老照片的质量并增加色彩。首先,工作流加载老照片并进行…

后端技术选型 sa-token校验学习 下 结合项目学习 前后端登录

目录 后端设置 Controller 层 Service 层 后端返回 Token 给前端 1. 用户提交登录请求 2. 后端验证用户身份 3. 返回 Token 4. 前端保存 Token 前端存储 1. 前端向后端发起请求 2. 前端存储一下 Token 3.管理用户认证的 token 的 工具 4. 在 Service 层进行设置 H…

如何用 SSH 访问 QNX 虚拟机

QNX 虚拟机默认是开启 SSH 服务的&#xff0c;如果要用 SSH 访问 QNX 虚拟机&#xff0c;就需要知道虚拟机的 IP 地址&#xff0c;用户和密码。本文我们来看看如何获取这些参数。 1. 启动虚拟机 启动过程很慢&#xff0c;请耐心等待。 2. 查看 IP 地址 等待 IDE 连接到虚拟机。…

java面向对象编程特性概述

目录 1. 类和对象 2. 封装&#xff08;Encapsulation&#xff09; 3. 继承&#xff08;Inheritance&#xff09; 4. 多态&#xff08;Polymorphism&#xff09; 5. 抽象&#xff08;Abstraction&#xff09; (1). 抽象类&#xff08;Abstract Class&#xff09; (2).接口…

React(二)——Admin主页/Orders页面/Category页面

文章目录 项目地址一、侧边栏1.1 具体实现 二、Header2.1 实现 三、Orders页面3.1 分页和搜索3.2 点击箭头显示商家所有订单3.3 页码按钮以及分页 四、Category页面4.1 左侧商品添加栏目4.2 右侧商品上传栏 五、Sellers页面六、Payment Request 页面&#xff08;百万数据加载&a…

maven 下载依赖 jhash:2.1.2 和对应 jar 包

原文地址 前言 25年新的一年&#xff0c;那就先更新一篇技术文章吧&#xff0c;这个是这几天刚遇到的一个有意思的bug&#xff0c;记录分享一下 原因分析 在使用maven加载一个项目的时&#xff0c;发现maven的依赖一直无法解析&#xff0c;更换阿里云镜像和中央仓库都没办法…

nums[:]数组切片

问题&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 使用代码如下没有办法通过测试示例&#xff0c;必须将最后一行代码改成 nums[:]nums[-k:]nums[:-k]切片形式&#xff1a; 原因&#xff1a;列表的切片操作 …

python-leetcode-三数之和

15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:nums.sort() # 排序n len(nums)res []for i in range(n):# 剪枝&#xff1a;如果当前数 > 0&#xff0c;三数之和不可能为 0if nums[i]…

极狐GitLab 正式发布安全版本17.7.1、17.6.3、17.5.5

本分分享极狐GitLab 补丁版本 17.7.1, 17.6.3, 17.5.5 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任何…

探索绿色能源系统的固态继电器:2025年展望

随着全球向绿色能源转型的加速&#xff0c;对高效、可靠和环保元件的需求从未如此强烈。在这种背景下&#xff0c;国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景&#xff…