<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[clmm_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/clmm_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; clmm_]]></copyright><item><title><![CDATA[常见回归损失函数详解：L1 Loss, L2 Loss, Huber Loss]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/148081653</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/148081653</guid><author>clmm_</author><pubDate>Tue, 20 May 2025 10:07:30 +0800</pubDate><description><![CDATA[L1 损失函数又称为绝对误差损失，其形式为，即预测值与真实值之间差值的绝对值。该函数对异常值具有鲁棒性，梯度恒定不易爆炸，但由于不可导点和不连续导数，可能导致优化过程中收敛速度变慢。]]></description><category></category></item><item><title><![CDATA[苍穹外卖超详细合集！包含博客以及全套源代码！]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/146021230</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/146021230</guid><author>clmm_</author><pubDate>Tue, 04 Mar 2025 20:16:47 +0800</pubDate><description><![CDATA[在csdn上有很多博客都是跟着视频写的，个人建议先看视频，看完了跟着博客做，这样印象深一点。以下是我认为优质的博客，最后也会附上博主自己有关的学习笔记（作为后端小白对某些知识点会感到困惑），以及全套源代码。但是由于前端博主在此之前就学过了，而且前端也不是本项目的重点，就不做赘述。历时二十天左右，苍穹外卖这个项目算是做完了，收获良多。学习过程中也找到很多优质的博客，以及大家分享的源代码（互联网开源精神万岁）。以下是一些零碎的知识点补充。]]></description><category></category></item><item><title><![CDATA[苍穹外卖零碎知识点学习记录]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/145440741</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/145440741</guid><author>clmm_</author><pubDate>Tue, 04 Mar 2025 19:56:31 +0800</pubDate><description><![CDATA[swagger可以自动根据代码接口生成接口文档，还可以在里面测试接口**思考：**通过 Swagger 就可以生成接口文档，那么我们就不需要 Yapi 了？
1、Yapi 是设计阶段使用的工具，管理和维护接口
2、Swagger 在开发阶段使用的框架，帮助后端开发人员做后端的接口测试通过以下注解，会影响最终的接口文档。在编写代码的过程中，随手加上这些注解，增加文档的可读性所实现的功能不止是对员工启用或禁用，而是可以对员工信息的多个字段进行动态更新。为什么能适用多个功能呢？因为 标签里使用了多个  标签来进行]]></description><category></category></item><item><title><![CDATA[springboot常用注解]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/146025046</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/146025046</guid><author>clmm_</author><pubDate>Tue, 04 Mar 2025 19:51:34 +0800</pubDate><description><![CDATA[在前后端分离的开发中，前端通常会以 JSON 格式发送数据到后端，后端使用注解将 JSON 数据转换为 Java 对象进行处理。]]></description><category></category></item><item><title><![CDATA[MyBatis 实现批量查询操作：以苍穹外卖套餐菜品关联查询为例]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/145736930</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/145736930</guid><author>clmm_</author><pubDate>Wed, 19 Feb 2025 19:22:13 +0800</pubDate><description><![CDATA[通过使用 MyBatis 的<foreach>标签，我们可以方便地实现批量查询操作，避免了多次执行单条查询语句带来的性能开销。这种方式不仅提高了代码的简洁性和可维护性，还能有效地提升数据库操作的效率。在实际开发中，我们可以根据具体的业务需求，灵活运用<foreach>标签的各种属性，实现不同类型的批量操作，如批量插入、批量更新等。希望本文能帮助你更好地理解和掌握 MyBatis 中的批量操作技巧。]]></description><category></category></item><item><title><![CDATA[MyBatis 插入操作中的主键生成与获取（内含苍穹外卖新增菜品例子）]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/145713325</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/145713325</guid><author>clmm_</author><pubDate>Tue, 18 Feb 2025 19:52:37 +0800</pubDate><description><![CDATA[在使用 MyBatis 进行数据库操作时，插入数据并获取自动生成的主键是一个常见的需求。本文将详细介绍 MyBatis 中<insert>标签的和属性的使用方法和原理，帮助你更好地掌握这一技术点。]]></description><category></category></item><item><title><![CDATA[mybatis实现分页查询（苍穹外卖）]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/145536570</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/145536570</guid><author>clmm_</author><pubDate>Sun, 09 Feb 2025 20:59:58 +0800</pubDate><description><![CDATA[请求参数类型为Query，不是json格式提交，在路径后直接拼接。然后也不用在传参时加上@RequestBody。]]></description><category></category></item><item><title><![CDATA[JWT 与 ThreadLocal协作实现信息传递（苍穹外卖员工管理）]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/145531692</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/145531692</guid><author>clmm_</author><pubDate>Sun, 09 Feb 2025 14:04:49 +0800</pubDate><description><![CDATA[JWT 是一种在网络应用间安全传递信息的开放标准。它以 JSON 对象的形式，将用户的身份信息（如员工 ID）进行编码，并通过加密算法生成一个令牌。这个令牌可以在客户端和服务器之间安全地传输，服务器可以根据令牌验证用户的身份。ThreadLocal 是 Java 中的一个线程局部变量，它为每个使用它的线程提供一个独立的变量副本。每个线程可以独立地对自己的副本进行读写操作，而不会影响其他线程的副本。这就好比给每个线程都分配了一个专属的 “小盒子”，线程可以在自己的 “小盒子” 里存放和取出数据。]]></description><category></category></item><item><title><![CDATA[Springboot的Bean管理]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/144402496</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/144402496</guid><author>clmm_</author><pubDate>Wed, 11 Dec 2024 15:54:00 +0800</pubDate><description><![CDATA[比喻版在spring中，需要添加以下注解，给具体的路径才能扫描到bean但springboot却不用指定路径，为什么？因为SpringBootApplication本质上是一个组合注解，里面包含@ComponentScan，如果不写具体扫描路径，就会扫描当前类所在包，及其所有子包。扫描范围如下。如果在com.example.test 05包外，启动类就扫描不到了（但一般也没人这么写）涉及到第三方bean注册，感觉暂时用不到，先不学了]]></description><category></category></item><item><title><![CDATA[gitee仓库的推送教程]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/144008217</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/144008217</guid><author>clmm_</author><pubDate>Sun, 24 Nov 2024 15:30:02 +0800</pubDate><description><![CDATA[确保您的计算机上已经安装了 Git。如果没有安装，可以从下载并安装。git init这会初始化一个新的 Git 仓库。替换为您在 Gitee 上创建的仓库的 URL。命令会添加当前目录下的所有文件到暂存区。后面跟着的是提交信息，您可以根据实际情况修改。如果您的默认分支名不是master，请替换为您的分支名（例如main（可选）： 如果您想要通过 SSH 方式连接到 Gitee，您需要在 Gitee 上设置 SSH 密钥。这需要在您的 Gitee 账户设置中添加您的公钥。]]></description><category></category></item><item><title><![CDATA[vue路由缓存问题]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142785292</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142785292</guid><author>clmm_</author><pubDate>Wed, 09 Oct 2024 15:01:27 +0800</pubDate><description><![CDATA[给 routerv-view 添加key属性，强制不添加缓存，破坏缓存，所以这个方法性能会比较差。使用 onBeforeRouteUpdate钩子函数，做精确更新。没用onBeforeRouteUpdate前的渲染。用onBeforeRouteUpdate后。]]></description><category></category></item><item><title><![CDATA[结合vueuse实现图片懒加载]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142681466</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142681466</guid><author>clmm_</author><pubDate>Wed, 02 Oct 2024 15:18:09 +0800</pubDate><description><![CDATA[在 Vue.js 中，是用于注册自定义指令的 API。自定义指令允许你在组件的模板中实现特定的功能或行为，这些功能或行为通常是 DOM 操作。自定义指令是一种可以在模板中使用的功能，通常以v-开头。例如，v-model和v-bind是内置指令。通过创建自定义指令，你可以扩展 Vue 的功能。: 用于注册自定义指令。自定义指令: 可以在模板中添加特定的功能，增强组件的交互性。钩子函数: 提供不同生命周期阶段的操作机会。简单来说，这段代码的目的是确保只有当用户滚动到]]></description><category></category></item><item><title><![CDATA[插槽slot在vue中的使用]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142671998</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142671998</guid><author>clmm_</author><pubDate>Tue, 01 Oct 2024 16:47:50 +0800</pubDate><description><![CDATA[在 Vue.js 中，插槽（slot）是一种用于实现组件内容分发的功能。通过插槽，可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。项目中有很多地方需要调用一个组件，比如弹窗，但是，有个可能弹出是表格，有的可能弹出是照片，这个决定于需要调用这个子组件的父组件，这种情况下就可以在自组建（这个弹窗中）使用slot，，slot的HTML元素和内容，完全取决于使用他的父组件给他传了啥。]]></description><category></category></item><item><title><![CDATA[3分钟让你学会axios在vue项目中的基本用法（建议收藏）]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142612169</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142612169</guid><author>clmm_</author><pubDate>Sat, 28 Sep 2024 10:39:30 +0800</pubDate><description><![CDATA[axios框架全称基于promise用于浏览器和node.js的http客户端，因此可以使用Promise API。]]></description><category></category></item><item><title><![CDATA[Vue和axios零基础学习]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142096287</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142096287</guid><author>clmm_</author><pubDate>Sat, 28 Sep 2024 10:16:10 +0800</pubDate><description><![CDATA[点击传递数据]]></description><category></category></item><item><title><![CDATA[vue3组合式API，看这篇就够了]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142436633</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142436633</guid><author>clmm_</author><pubDate>Tue, 24 Sep 2024 12:33:07 +0800</pubDate><description><![CDATA[子组件使用定义事件：你可以在子组件中定义事件名称（如），并使用emit来发送数据。父组件使用监听事件：在父组件中，通过监听子组件的事件，并定义处理函数来处理接收到的数据。上面可以看到有两种写法，关于defineEmits带不带参数解释如下通过ref，开发者可以轻松地访问和操作真实的 DOM 元素或子组件实例。这为动态更新内容、调用组件方法等提供了极大的便利，使得 Vue 的开发更加灵活和强大。ref在 Vue 中的作用确实类似于在原生 JavaScript 中使用id或class属性，然后通过。]]></description><category></category></item><item><title><![CDATA[Pinia从安装到使用]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142484146</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142484146</guid><author>clmm_</author><pubDate>Tue, 24 Sep 2024 12:26:01 +0800</pubDate><description><![CDATA[counter.js


App.vue


 是 Pinia 提供的一个实用函数，用于将 store 中的状态转换为响应式引用（reactive refs）。这使得在 Vue 组件中使用 Pinia 的状态更加方便，尤其是在组合式 API 中。为什么使用 在组合式 API 中，直接从 store 中解构状态可能会导致失去响应性。使用  可以确保我们解构出来的每个状态仍然是响应式的。需要注意的是，要区分一下，解构数据和解构方法是不一样的解构数据需要加上storeToRefs（否则会失去响应性），解构方法则不]]></description><category></category></item><item><title><![CDATA[Vuex的使用看这一篇就够了]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142345088</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142345088</guid><author>clmm_</author><pubDate>Sun, 22 Sep 2024 14:24:58 +0800</pubDate><description><![CDATA[<button @click="add">增加</button>]]></description><category></category></item><item><title><![CDATA[Javastript看这篇就够了]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/140739523</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/140739523</guid><author>clmm_</author><pubDate>Wed, 18 Sep 2024 23:31:07 +0800</pubDate><description><![CDATA[当然了，还有别的方法事件对象，存的是时间触发时的相关信息在 JavaScript 中，事件对象是一个特殊的对象，它包含了与特定事件相关的信息，比如事件的类型、目标元素、事件触发时鼠标或键盘的状态等。事件对象通常在事件处理函数中自动传递给该函数，使得函数可以访问这些信息。type：事件的类型，比如"click"等。target或 srcElement：触发事件的元素。在 DOM 级别 0 中使用srcElement，而在 DOM 级别 2 和现代浏览器中使用target。：事件监听器绑定的元素，与。]]></description><category></category></item><item><title><![CDATA[CSS媒体查询]]></title><link>https://blog.youkuaiyun.com/clmm_/article/details/142067647</link><guid>https://blog.youkuaiyun.com/clmm_/article/details/142067647</guid><author>clmm_</author><pubDate>Mon, 09 Sep 2024 20:47:20 +0800</pubDate><description><![CDATA[例如，同一个网页，在电脑上显示和在手机上显示有可能不一样的，因为电脑的屏幕更大，显示的东西可能更多。为了适应不同设备的屏幕大小，就要写多种样式，例如在电脑上，ipad上，手机上的样式都要设置。]]></description><category></category></item></channel></rss>