自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis

cd /optls -ltrmkdir redisls -ltrcd rediswget https://download.redis.io/releases/redis-6.2.14.tar.gz?_gl=1rg8uiu_gaNTU1MjQwOTI1LjE3MDA3MjI1Mjk._ga_8BKGRQKRPVMTcwMDc1Mjk0Mi41LjAuMTcwMDc1Mjk0Mi42MC4wLjA._gcl_au*NTYxOTk3MDg1LjE3MDA3MjI1Mjk.ls -ltrmv redis-6.2.

2025-05-14 22:45:35 759

原创 this.isLoggedIn = true 没有触发页面更新

组件不能直接修改状态状态变更必须通过 mutation 触发异步操作通过 action 处理对于永远不要直接修改 Vuex 状态,始终通过 mutation 来修改在 Vue 3 中可以使用 Vuex 4 或更推荐的 Pinia利用 Vue DevTools 调试 Vuex 状态变化// 1. 使用 mutation// 2. 或使用 action 处理异步操作时间旅行调试对于永远不要直接修改 Vuex 状态,始终通过 mutation 来修改。

2025-04-26 14:39:57 1019

原创 spring security 使用的过滤器还是拦截器

Spring Security 主要通过过滤器链实现请求和响应的安全处理,但也提供了方法级别的安全控制支持,允许你通过拦截器和注解来进行细粒度的安全控制。过滤器用于全局的 HTTP 请求安全管理,而拦截器则用于更具体的方法级别的权限控制。Spring Security 主要是通过过滤器链处理请求(身份认证、权限校验等核心操作),而不是使用拦截器。但在特定情况下,拦截器可以配合 Spring Security 完成一些额外的逻辑处理,比如记录审计日志、扩展特定的请求处理行为等。

2025-03-25 23:18:28 844

原创 string kmp java

双指针算法是计算最长相等前后缀(也称为部分匹配表或 next 数组)的一种简洁高效的方法,常用于 KMP 算法。中第一次出现处的索引,如果此字符串中没有这样的子串,则返回 -1。输出子串在主串中的首次出现的下标位置,如果没有则返回 -1。部分匹配表的本质是为模式串的每个位置记录对应的子串的。

2025-03-23 22:05:08 757

原创 @AuthenticationPrincipal user null

如果用户未登录或认证失败,可以通过全局异常处理捕获相关异常(如。在控制器中使用它可以简化获取当前用户的逻辑,避免手动从。是从当前认证上下文中获取用户信息的快捷方式。中获取用户信息,检查是否正确存储了用户。

2025-03-21 23:29:32 470

原创 hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常

【代码】hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常。

2025-03-18 23:07:22 265

原创 stack deque queue

【代码】stack deque queue。

2025-03-16 22:07:43 196

原创 llm + rag

是一种结合大型语言模型(LLM, Large Language Model)和智能代理(AI Agent)的技术架构,用于构建能够自主完成复杂任务的智能系统。AI Agent 是一个能够感知环境、规划任务、执行操作并与外部工具交互的系统,而 LLM 则为其提供强大的自然语言理解和生成能力。LLM(Large Language Model)是指一种基于深度学习的自然语言处理模型,能够生成、理解和处理人类语言。

2025-03-05 14:13:43 909

原创 react install

在开发 React 应用程序时,经常会使用一些流行的 JavaScript 库和工具来增强功能、管理状态、路由和进行 API 操作等。在开始一个新项目时,建议仔细评估需求,选择适合的库,避免过度使用导致项目变得臃肿。根据需要,安装和配置其他包和工具以补充你的开发环境,例如 Redux, React Router 等。在 React 开发中,有许多常用的 JavaScript 库可以帮助你更高效地构建应用。这些库和工具可以根据项目需求和个人喜好选择使用,帮助你简化开发流程,提高代码的可维护性和扩展性。

2025-01-20 07:39:13 1261

原创 ddl-auto: create

【代码】ddl-auto:create。

2025-01-19 03:45:04 197

原创 jpa/hibernate 配置初始化数据库 - ddl-auto

【代码】jpa/hibernate配置初始化数据库-ddl-auto。

2025-01-18 20:57:21 330

原创 套餐内商品的排列顺序

某店铺将用于组成套餐的商品记作字符串goods,其中goods[i]表示对应商品。请返回该套餐内所含商品的全部排列方式。返回结果无顺序要求,但不能含有重复的元素。示例1:输入:goods=“agew”

2025-01-18 19:08:21 299

原创 springboot 自定义注解一般和aop同时使用

在Spring Boot中,自定义注解通常与AOP结合使用,以实现特定的横切关注点。例如,你可以创建自定义注解来处理日志记录、权限验证、事务管理等。首先,定义一个自定义注解。这是一个简单的Java注解,可以用于标识需要特殊处理的方法。Retention;Target;现在你可以在任何Spring Bean的方法上使用注解,以便在该方法被调用时执行日志记录功能。// 模拟方法执行时间 Thread . sleep(2000);

2025-01-17 11:20:03 792

原创 clone

通过理解堆内存模型,可以更好地选择浅拷贝或深拷贝方法,满足不同的开发需求。的核心区别在于它们如何处理引用类型的数据(如对象和数组)在。在 JavaScript 中,

2025-01-13 23:47:35 784

原创 swagger ( spring security + jwt + swagger )

这是 springboot 3.3.5 整合 spring security 和 swagger 的示例,包含用户认证和授权的完整实现。这个配置提供了一个完整的 Spring Security + JWT + Swagger 的实现。Swagger UI 中会显示所有的 API 接口,包括认证和需要认证的接口。

2025-01-12 17:26:25 198

原创 lombok

在 Java 中,如果你定义了任何带参构造函数,编译器就不会再自动提供默认的无参构造函数。在某些情况下(例如在与某些框架合作使用时,如 JPA),即使已经有带参构造函数,我们仍然需要一个无参构造函数,这时。通过以上步骤,您就可以在 Spring Boot 项目中使用 Lombok,以减少样板代码,提高开发效率。根据您的构建工具(Maven 或 Gradle),在您的项目中添加 Lombok 依赖。的使用和特性,可以更方便地管理对象的创建过程,特别是在使用某些要求无参构造的框架时。类生成一个无参构造函数。

2025-01-11 13:49:48 906

原创 lombok + @Entity

通过结合使用这些 Lombok 和 JPA 注解,可以大大简化实体类的编写,提高代码的可读性和维护性。通过使用 Lombok,可以显著提高 Java 开发的效率和代码质量,尤其是在处理大量数据类时。: 自动生成无参构造函数,这是 JPA 要求的,因为 JPA 需要通过反射创建实体实例。: 自动生成所有字段的 getter 和 setter 方法,简化属性访问。方法,默认使用所有非静态字段,确保对象比较和哈希计算的一致性。方法,输出对象的字符串表示,便于调试和日志记录。方法等,从而提高开发效率和代码可读性。

2025-01-11 13:48:48 665

原创 分发糖果

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。示例 1:输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。示例 2:输入:ratings = [1,2,2]输出:4。

2025-01-11 00:45:42 191

原创 常见的http状态码 + ResponseEntity

设置 HTTP 状态码为。:设置响应体为自定义的字符串。@ResponseStatus(HttpStatus.NOT_FOUND) // 默认返回 404。

2025-01-08 12:43:30 1157

原创 _controller_validate

String message() default "电话号码格式不正确";Class <?Class <?String message() default "电话号码格式不正确";Class <?Class <?Constraint;String message() default "电话号码格式不正确";Class <?Class <?Payload;String message() default "电话号码格式不正确";Class <?Class <

2025-01-08 12:21:00 722

原创 tree traversal

2025-01-02 19:45:19 130

原创 graph

2025-01-01 22:05:49 150

原创 option api & compose api

/ 更新数据的方法。

2024-12-31 20:02:05 896

原创 css ( cascading style sheets )

CSS(Cascading Style Sheets,层叠样式表)是一种用于描述HTML或XML文档的呈现样式的语言。它的主要作用是为Web文档的内容添加美观的样式,使网页更加用户友好和吸引人。以下是对CSS的几个关键点的简要介绍:选择器:选择器用于指定需要应用样式的HTML元素。常见的选择器包括类型选择器、类选择器、ID选择器、属性选择器等。元素选择器:如 p, div, span类选择器:如 .class-nameID 选择器:如 #id-name属性选择器:如 [attribute=“value”]

2024-12-30 22:37:38 659

原创 css 文本样式

这些CSS属性和技术可以帮助你更精细地控制网页中的文本呈现和布局,提升用户体验和视觉美观。根据具体需求和设计要求选择适合的文本样式。这些属性和技术为网页设计提供了丰富的工具,以实现各种布局和用户交互效果。精确应用这些CSS属性可以帮助你打造直观和美观的用户界面。: 改变鼠标指针的样式,以指示可点击区域或其他状态。: 设置元素的宽高,通常与响应式设计相关。: 清除浮动,以确保后续元素不受浮动影响。: 创建多列布局来增强文本和内容的展示。: 使用浮动来布局元素,使其左右浮动。: 为元素的角添加圆角效果。

2024-12-30 22:17:08 911

原创 css 页面组件遮挡

使用 Element Plus 的布局组件,结构更清晰。布局更加灵活,易于维护。不需要手动计算内边距。

2024-12-30 22:05:31 375

原创 css 类名

在开发过程中,为了将页面拆分为多个可独立使用的组件,并在不同页面中统一应用这些组件的样式,开发者经常使用 CSS 组件名来命名这些组件。通过为 HTML 元素添加类名,您可以将特定的 CSS 样式应用于这些元素,实现页面样式与结构的分离和重用。CSS 组件名通常是指一种命名约定,用于标识和管理可重用的、独立的组件样式。通过将类名应用于不同的 HTML 元素,可以在网页中轻松实现样式的统一和重用,从而提高开发效率和维护性。)选择具有特定类名的元素,并为这些元素应用相应的样式规则。例如,在以下示例中,

2024-12-30 21:57:21 554

原创 tailwind.css bootstrap

Tailwind CSS 和 Bootstrap 是两种流行的 CSS 框架,但它们的设计理念和使用方式有所不同。以下是它们的对比、优缺点以及如何在项目中同时使用它们的指南。Tailwind CSSBootstrap选择 Tailwind CSS:选择 Bootstrap:在某些情况下,您可能希望同时使用 Tailwind CSS 和 Bootstrap,例如:以下是如何在项目中同时集成它们的步骤:在项目中安装 Tailwind CSS 和 Bootstrap:2. 配置 Tailwind CS

2024-12-26 23:24:10 1111

原创 tailwind.css vuecli

vuecli 集成 tailwind css 详细步骤:如果您还没有创建 Vue CLI 项目,可以通过以下命令创建一个新项目:在创建过程中,选择默认配置或根据需要自定义配置。进入项目目录:2. 安装 Tailwind CSS在项目中安装 Tailwind CSS 及其相关依赖:然后初始化 Tailwind CSS 配置文件:这会在项目根目录下生成一个 文件。打开 文件,配置 Tailwind 的内容选项以确保它能正确清理未使用的 CSS: 数组中指定了 Tailwind CSS 应扫描的

2024-12-26 23:22:13 1067

原创 git commit 如何添加注释

【代码】git commit 如何添加注释。

2024-12-19 11:01:50 330

原创 vim save

在 Vim 中保存文件的方法如下:EscEscEscEscEscEsc。

2024-12-14 16:24:26 2578

原创 firewall

【代码】firewall。

2024-12-14 16:20:12 309

原创 ejb组件(rmi) & webservice平台(xml)

使用@Bean显式定义。使用@Component或其派生注解自动扫描。配置作用域、生命周期和条件化加载。通过 Spring 的 IoC 容器,开发者可以轻松实现依赖注入和组件管理,从而提高代码的可维护性和扩展性。优先使用构造器注入,它可以保证依赖不可变且必须被注入使用@Component注解时,确保组件被扫描到合理使用作用域,大多数情况下使用默认的单例模式即可注意循环依赖问题,尽量通过良好的设计来避免使用@Qualifier或@Primary。

2024-12-09 18:27:26 900

原创 docker compose

Docker的理念是一个容器只运行一个服务。而 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具 1 2。通过 docker-compose.yml 文件,用户可以配置应用程序服务,并使用简单的一条命令便可以创建和启动所有服务。这是关于 Docker Compose 的一些关键点以及如何使用它的指南:多容器应用:使用 YAML 文件定义配置:简化的命令行接口:Linux 安装:使用以下命令下载 Docker Compose 的最新版本:为二进制文件应用可执行权限:

2024-12-06 01:36:54 944

原创 array & .flat .filter .map .push .trim .find

这些方法是 JavaScript 中操作数组和字符串的基础工具,功能强大且易用。.flat():用于“拉平”嵌套数组。.filter():用于筛选数组中的元素。.map():用于对数组中的每个元素进行转换。.push():用于向数组末尾添加元素。.trim():用于去除字符串两端的空格。.find():用于查找数组中第一个满足条件的元素。

2024-11-24 20:22:34 397

原创 直接修改对象或数组的属性未触发视图更新

如果数据是通过。

2024-11-24 20:08:24 877

原创 this.$refs & =ref()

// setup 函数中setup() {// 记得返回 ref,使其在模板中可用return {count</script>// setup 语法糖中// 自动暴露给模板, 即 省略了写 return// count,// };

2024-11-24 20:07:46 1001

原创 _computed _destinations() 为什么模板不写()

不需要括号: 在模板中使用计算属性时,不需要加括号,因为它们被视为属性。自动更新: 计算属性会根据其依赖项的变化自动更新,并且结果会被缓存以提高性能。这种设计使得 Vue 的模板语法更加简洁和直观,同时也提高了应用的性能。

2024-11-24 20:06:06 1138

原创 =computed() =ref()

是不同的工具,虽然它们都可以创建响应式数据,但它们的用途和行为不同。computed()是 Vue 3 组合式 API 的核心工具,它们分别用于。如果你的计算逻辑非常简单,且不需要依赖缓存机制,可以用。在 Vue 3 的 Options API 中,的功能,但这通常不推荐,因为。已经为你处理了依赖追踪和缓存。以下是一个示例,展示如何用。的依赖追踪和缓存特性。假设你有一个组件,使用。在 Vue 3 中,

2024-11-24 20:05:27 1207

原创 TypeError: Cannot read properties of undefined (reading ‘state‘)

【代码】TypeError: Cannot read properties of undefined (reading ‘state‘)

2024-11-14 21:17:07 260

linux/python

linux/python

2021-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除