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

ssm模糊知识点整合

一、参数绑定常用注解

  1. @RequestParam:用于将请求参数绑定到你的方法参数上。

  2. @PathVariable:用于将路径变量绑定到你的方法参数上。

  3. @RequestBody:用于将请求主体绑定到你的方法参数上,通常用于绑定POST请求的JSON或XML数据。

  4. @RequestHeader:用于将请求头部信息绑定到你的方法参数上。

  5. @CookieValue:用于将Cookie值绑定到你的方法参数上。

主要的区别在于:

  • 绑定的位置不同:@RequestParam 是请求参数,@PathVariable 是路径变量,@RequestBody 是请求体

二、mybatis关联查询

1、resultType

作用:将查询结果按照SQL列名与实体类属性名一致性映射到实体类对象中。 场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可 直接使用resultType将每一条记录映射到实体类中,在前端页面遍历list(list中是实体类)即可。

2、resultMap

使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。

3、association

作用:将关联查询信息映射到一个实体类对象中。 场合:为了方便查询关联信息可以使用association将关联信息映射为当前对象的一个属性,比如:查询 订单以及关联用户信息。

4、collection

作用:将关联查询信息映射到一个list集合中。 场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权 限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的 菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。如果使用resultType无法将查询 结果映射到list集合中。

5、resultMap的继承

resultMap标签可以通过extends属性来继承一个已有的或公共的resultMap,避免重复配置的出现,减 少配置量。

<!-- 父resultMap标签-->
<resultMap id="baseResultMap" type="com.gs.entity.Orders"><id column="id" property="id"/><result column="order_number" property="orderNumber"/><result column="total_price" property="totalPrice"/><result column="status" property="status"/><result column="user_id" property="userId"/>
</resultMap>
<!-- 继承父resultMap标签中的配置,避免重复配置 -->
<resultMap id="subResultMap" type="com.gs.entity.Orders" 
extends="baseResultMap"><association property="users" javaType="com.gs.entity.Users"><id column="id" property="id"/><result column="username" property="username"/><result column="password" property="password"/><result column="realname" property="realname"/></association>
</resultMap>

三、Bean对象生命周期(后续需详细补充)

  1. 实例化(Instantiation): Spring容器通过反射或者工厂方法创建Bean的实例。

  2. 属性赋值(Populate Properties): 为Bean的属性设置值和对其他Bean的引用。

  3. 初始化(Initialization): 如果Bean实现了BeanNameAware, BeanFactoryAware, ApplicationContextAware等接口,会调用对应的方法。然后,如果BeanPostProcessor被注册,相应的postProcessBeforeInitialization()方法会被调用。最后,如果Bean实现了InitializingBean接口,其afterPropertiesSet()方法会被调用;或者,如果Bean使用init-method属性声明了初始化方法,这个方法也会被调用。

  4. 使用(In use by application): Bean现在可以被应用程序使用了。

  5. 销毁(Destruction): 当容器关闭时,如果Bean实现了DisposableBean接口,其destroy()方法会被调用;或者,如果Bean使用destroy-method属性声明了销毁方法,这个方法也会被调用。

四、spring boot自动装配(后续需详细补充)


(一)、核心注解


1.  @SpringBootApplication :这是一个组合注解,包含了  @Configuration 、 @EnableAutoConfiguration  和  @ComponentScan 。其中  @EnableAutoConfiguration  是实现自动装配的关键注解。

springboot是一个脚手架工具,约定大于配置。我们只需要按照springboot的规范来开发,就能减少很多配置,当需要开发web项目的时候

@SpringBootApplication(有三个子注解,分比为1、2、3)
        1:@SpringBootConfiguration    (有一个子注解:Configuaration)
                1.1:@Configuaration    (有一个子注解:Component)
                        1.1.1:@Component (作用:就是启动类声明为bean)
        2:@EnableAutoConfiguration    (开启自动注入:有两个子注解)
                2.1:@AutoConfigurationPackage  (自动配置包:有一个子注解,import)
                        2.1.1:@Import({Registrar.class})      (没有子注解)
                2.2:@Import({AutoConfigurationImportSelector.class})    (没有子注解)
        3:@ComponentScan  (组件扫描:没有子注解,作用:包扫描项目包路径)
在这三个注解中,第一和第三都没有太大的意思,所以我们主要看第二个注解就好了。在第二个注解中使用了两个@import注解。就是这两个注解解释了自动装配的含义

(二)、自动配置类


Spring Boot 在启动时会扫描类路径下的  META-INF/spring.factories  文件,这个文件中定义了大量的自动配置类。自动配置类通常以  XXXAutoConfiguration  的形式命名。
例如,当引入了 Spring Boot Web 模块依赖时,会自动加载  SpringWebMvcAutoConfiguration  自动配置类,它会根据类路径下是否存在相关的类(如  DispatcherServlet )来决定是否进行 Web 相关的配置,如配置视图解析器、静态资源处理等。


三、条件装配


自动配置类通常使用  @Conditional  注解来进行条件装配。这些条件可以基于类路径上是否存在特定的类、系统属性是否满足特定条件等。
例如, @ConditionalOnClass  注解表示只有当类路径上存在特定的类时才会进行自动配置。


四、导入其他配置


自动配置类还可以通过  @Import  注解导入其他配置类或组件,进一步扩展自动装配的功能。
总之,Spring Boot 的自动装配原理是通过扫描特定的配置文件,加载自动配置类,并根据条件进行装配,从而实现了快速、便捷的开发体验,减少了大量的手动配置工作。

相关文章:

ssm模糊知识点整合

一、参数绑定常用注解 RequestParam&#xff1a;用于将请求参数绑定到你的方法参数上。 PathVariable&#xff1a;用于将路径变量绑定到你的方法参数上。 RequestBody&#xff1a;用于将请求主体绑定到你的方法参数上&#xff0c;通常用于绑定POST请求的JSON或XML数据。 Req…...

2、Spring Boot 3.x 集成 Feign

一、前言 本篇主要是围绕着两个点&#xff0c;1、集成 Feign&#xff0c;2、分离feign接口层&#xff0c;独立服务&#xff1b; 还有一点就是上篇文章的服务 iot-channel、system-server 服务名称调整成为了 chain-iot-channel、chain-system二、搭建 chain-common 服务 pom.…...

深度学习-图像处理篇-5ResNet和ResNeXt

解决问题&#xff1a; 梯度消失或梯度爆炸 退化问题(degradation problem) 迁移学习 ResNeXt...

类的关联、依赖、聚合和组合关系的思考(一)

最近在看《设计模式》这本书&#xff0c;发现对类之间的关系还没搞的很明白&#xff0c;而类之间的关系对读书、阅读代码和代码设计都非常重要&#xff0c;因此边看书边查阅了一些资料&#xff0c;感觉有些理解了。下面是我的一些思考&#xff0c;分享一下。 查阅了很多博客&a…...

云舟观测:集成开源Grafana Faro构建前端页面性能监控平台

在当今互联网时代&#xff0c;面对纷乱繁杂的网上资源&#xff0c;用户的耐心和注意力是极为宝贵的资源&#xff0c;当用户访问一个网站或应用时&#xff0c;他们期望的是快速且无缝的体验&#xff0c;任何加载延迟或功能故障都可能导致用户流失&#xff0c;影响品牌体验。因此…...

c# 子类继承父类接口问题

在C#中&#xff0c;子类并不直接“继承”父类继承的接口&#xff0c;但子类的确会继承父类对接口的实现&#xff08;如果父类实现了该接口&#xff09;。这里有一些关键的概念需要澄清&#xff1a; 接口继承&#xff1a;当一个类实现了某个接口时&#xff0c;它必须实现接口中…...

Vue 中自定义指令的探索与实践

文章目录 一、Vue 自定义指令简介二、基本语法三、指令的值四、封装v-loading指令五、总结 在 Vue 开发中&#xff0c;自定义指令为我们提供了一种强大的方式来操作 DOM 元素&#xff0c;实现特定的交互效果和功能增强。本文将深入探讨 Vue 中自定义指令的基本语法、指令的值的…...

Vue3通过$emit实现子向父传递数据

引言 子组件通过$emit触发事件&#xff0c;并传递数据&#xff0c;父组件在使用子组件时就可以绑定子组件事件&#xff0c;在事件处理函数中拿到子组件传来的数据 子组件传递数据 函数声明&#xff1a;$emit(事件名, 传递的数据 . . .) 子组件传递的数据会依次传递给父组件的…...

代码随想录算法训练营第十四天|递归 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

226.翻转二叉树 翻转一棵二叉树。 思路&#xff1a; 在这里需要注意的是&#xff0c;在递归的时候唯独中序遍历是不可用的&#xff0c;这是因为先对左子树进行了反转&#xff0c;又对自身进行了反转&#xff0c;对自身反转后原本的左子树变成了右子树&#xff0c;如果此时又轮…...

Spark 任务与 Spark Streaming 任务的差异详解

Spark 任务与 Spark Streaming 任务的主要差异源自于两者的应用场景不同&#xff1a;Spark 主要处理静态的大数据集&#xff0c;而 Spark Streaming 处理的是实时流数据。这些差异体现在任务的调度、执行、容错、数据处理模式等方面。 接下来&#xff0c;我们将从底层原理和源…...

Git提示信息 Pulling is not possible because you have unmerged files.

git [fatal] hint: Pulling is not possible because you have unmerged files.hint: Fix them up in the … error: Pulling is not possible because you have unmerged files. 错误:无法提取&#xff0c;因为您有未合并的文件。 hint: Fix them up in the work tree, and t…...

python编程开发“人机猜拳”游戏

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

丹摩智算平台部署 Llama 3.1:实践与体验

文章目录 前言部署前的准备创建实例 部署与配置 Llama 3.1使用心得总结 前言 在最近的开发工作中&#xff0c;我有机会体验了丹摩智算平台&#xff0c;部署并使用了 Llama 3.1 模型。在人工智能和大模型领域&#xff0c;Meta 推出的 Llama 3.1 已经成为了目前最受瞩目的开源模…...

SpringCloud 2023各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)

目录 1. 各依赖版本选择2. 核心功能与组件3. 创建项目3.1 注意事项3.2 依赖 1. 各依赖版本选择 SpringCloud: 2023.0.1SpringBoot: 3.2.4。参考Spring Cloud Train Reference Documentation选择版本 SpringCloud Alibaba: 2023.0.1.0*: 参考Spring Cloud Alibaba选择版本。同时…...

串行化执行、并行化执行

文章目录 1、串行化执行2、并行化测试&#xff08;多线程环境&#xff09;3、任务的执行是异步的&#xff0c;但主程序的继续执行是同步的 可以将多个任务编排为并行和串行化执行。 也可以处理编排的多个任务的异常&#xff0c;也可以返回兜底数据。 1、串行化执行 顺序执行、…...

二叉搜索树(c++版)

前言 在前面我们介绍过二叉树这个数据结构&#xff0c;今天我们更进一步来介绍二叉树的一种在实现中运用的场景——二叉搜索树。二叉搜索树顾名思义其在“搜索”这个场景下有不俗的表现&#xff0c;之所以会这样是因为它在二叉树的基础上添加了一些属性。下面我们就来简单的介…...

每日1题-7

...

简单实现log记录保存到文本和数据库

简单保存记录到txt&#xff0c;sqlite数据库&#xff0c;以及console监控记录 using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; using System.Data.SQLite; using System.IO;namespace NlogFrame {public enum LogType{Tr…...

敏感字段加密 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷+C卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 【敏感字段加密】给定一个由多个命令字组成的命令字符串: 1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号; 2、命令字之间以一个或多个下划线 进行分割; 3、可…...

go 安装三方库

go版本 go versiongo version go1.23.1 darwin/arm64安装 redis 库 cd $GOPATH说明&#xff1a; 这里可以改 GOPATH的值 将如下 export 语句写入 ~/.bash_profile 文件中 export GOPATH/Users/goproject然后使其生效 source ~/.bash_profile初始化生成 go.mod 文件 go mod…...

避坑指南:Xilinx PCIe IP的lane反序问题与GT时钟约束的隐藏陷阱

Xilinx PCIe IP实战&#xff1a;破解Lane反序与GT时钟约束的五大核心难题 当你在Vivado中首次生成PCIe IP核时&#xff0c;可能会惊讶地发现硬件实际的lane顺序与代码中的定义完全相反。这不是bug&#xff0c;而是Xilinx默认的设计特性。更棘手的是&#xff0c;GT参考时钟的自动…...

别再死记硬背了!动态规划解回文问题的填表顺序与状态定义保姆级图解

动态规划解回文问题&#xff1a;从填表顺序到状态定义的思维重塑 第一次接触回文串的动态规划解法时&#xff0c;我盯着那个双重循环的填表顺序发呆了半小时——为什么i要从n-1开始倒着遍历&#xff1f;为什么j又要从i开始正着遍历&#xff1f;更让我困惑的是&#xff0c;dp[i…...

从 Prompt Engineering 到 Harness Engineering:AI 系统竞争,正在从“会写提示词”转向“会搭执行框架”

从 Prompt Engineering 到 Harness Engineering&#xff1a;AI 系统竞争&#xff0c;正在从“会写提示词”转向“会搭执行框架” 摘要 过去两年&#xff0c;很多团队把 AI 应用效果的提升寄托在 Prompt Engineering 上&#xff1a;修改 system prompt、叠加 few-shot、重写指令…...

打破协议壁垒:BthPS3如何让PS3手柄在Windows上重生

打破协议壁垒&#xff1a;BthPS3如何让PS3手柄在Windows上重生 【免费下载链接】BthPS3 Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals 项目地址: https://gitcode.com/gh_mirrors/bt/BthPS3 你是否曾经尝试将PS3手柄连接到Windows电…...

互联网大厂Java求职者面试全解析:技术点与场景详解

面试场景介绍 本文通过一场严肃的面试官与搞笑的水货程序员谢飞机之间的面试对话&#xff0c;带你深入了解互联网大厂Java面试的全套流程。涵盖Java核心语言与平台、Spring生态、微服务、安全、消息队列等热点技术&#xff0c;融合多种业务场景&#xff0c;如电商、内容社区、在…...

OpenClaw备份恢复指南:ollama-QwQ-32B模型与技能迁移方案

OpenClaw备份恢复指南&#xff1a;ollama-QwQ-32B模型与技能迁移方案 1. 为什么需要备份恢复方案 上周我的主力开发机突然硬盘故障&#xff0c;导致整个OpenClaw环境丢失。最痛苦的不是重装软件&#xff0c;而是那些精心调教过的技能配置和任务历史记录全部归零。这次经历让我…...

MinerU效果展示:精准识别表格数据,财务报告一键解析

MinerU效果展示&#xff1a;精准识别表格数据&#xff0c;财务报告一键解析 1. 引言&#xff1a;当AI遇见财务报表 想象一下&#xff0c;你是一名财务分析师&#xff0c;面前堆着几十份上市公司最新发布的PDF财报。你需要从中快速提取近三年的营收、利润、现金流等关键数据&a…...

Phi-4-Reasoning-Vision开源大模型实践:图文多模态输入格式与Phi-4模型要求对齐

Phi-4-Reasoning-Vision开源大模型实践&#xff1a;图文多模态输入格式与Phi-4模型要求对齐 1. 项目概述 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡RTX 4090环境优化。该工具严格遵循官方SYSTEM…...

通义千问多模态检索系统:图文视频混合输入全解析

通义千问多模态检索系统&#xff1a;图文视频混合输入全解析 1. 多模态检索的行业痛点与解决方案 在信息爆炸的时代&#xff0c;传统文本检索系统面临三大核心挑战&#xff1a; 跨模态匹配失效&#xff1a;用户用文字描述"红色跑车在沙漠驰骋"&#xff0c;系统却返…...

CCS12.3.0保姆级教程:手把手教你为AWR6843AOP毫米波雷达新建工程(附完整配置参数)

CCS12.3.0零基础实战指南&#xff1a;AWR6843AOP毫米波雷达工程搭建全解析 第一次打开Code Composer Studio 12.3.0时&#xff0c;满屏的选项和参数确实容易让人望而生畏。特别是当你要为TI的AWR6843AOP毫米波雷达创建新工程时&#xff0c;那些关于Cortex R、DSP C67XX、mss/ds…...