自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Nginx配置负载均衡

upstream通过Nginx的负载均衡功能,可以轻松地将请求分发到多台服务器,从而提高系统的可用性、容错性和处理能力。根据不同的应用场景,选择合适的负载均衡策略(如轮询、权重、IP哈希、最少连接)来优化系统的性能。默认轮询:适用于负载相对均衡的后端服务器。权重:适合不同性能服务器的场景,能够合理分配负载。IP哈希:适用于需要会话保持的场景。最少连接数:适用于处理请求时间差异较大的场景。

2024-09-17 20:29:18 828

原创 基于TCP实现聊天

【代码】基于TCP实现聊天。

2024-09-17 20:17:13 400

原创 RabbitMQ的Direct Exchange模式实现的消息发布案例

表示自动应答(auto-acknowledge),即消息处理完毕后,RabbitMQ会自动确认消息已成功处理。如果需要手动应答,可以将。:消费者的队列名称、交换机名称和路由键与生产者保持一致,即监听。获取消息内容,随后可以对消息进行处理、存储或其他业务逻辑操作。来定义收到消息后的处理逻辑。Consumer消费者代码。队列,并接收路由键为。,并在处理完成后调用。

2024-09-11 22:23:04 615

原创 在RabbitMQ中四种常见的消息路由模式

【代码】在RabbitMQ中四种常见的消息路由模式。

2024-09-11 20:40:53 1086

原创 Redis中事务与乐观锁

会失败,事务不会执行。这时可以选择重新执行整个操作,确保数据一致性。此时就相当于SQL中的乐观锁功能。此时我想在一个事务中更新多个相关联的键,并希望确保在执行过程中这些键不会被其他客户端修改。被其他客户端修改了,

2024-08-25 20:36:10 203

原创 Redis模型中Geospatia、HyperLogLog、Bitmap使用

【代码】redis模型中Geospatia、HyperLogLog、Bitmap使用。

2024-08-16 11:53:11 379

原创 Swagger中配置环境及扫描接口

docketdev。

2024-08-08 15:22:28 251

原创 Spring Security中认证和授权模式

【代码】Spring Security中认证和授权模式。

2024-08-01 11:30:06 403

原创 Linux中基本目录介绍

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。: 这个目录中存放着在不断扩充的东西,我们引用数据库经常会涉及到的目录放在这个目录下。: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般这目录名是以用户的账号命名的。: 这个目录是用来存放一些临时文件的。用完即删除的文件,可以放在这个目录下,安全!: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。: 这是系统管理员,也称作超级管理员的用户目录。

2024-07-27 21:17:41 179

原创 springboot中resource目录介绍与Thymeleaf使用

访问性static中的资源可以直接被 Web 浏览器请求和获取,而templates目录中的文件则需要经过服务器处理(如填充数据、执行逻辑)才能形成最终的页面。交互性templates目录下的文件通常包含动态内容,需要填充数据,适用于用户界面的动态交互,而static更多用于提供不会频繁变动的客户端代码和资源。技术实现static目录的处理较为简单,主要涉及静态文件的服务;templates的处理则复杂,涉及到模板引擎的选择和配置,以及与后端数据的动态绑定。

2024-07-25 11:19:03 464

原创 SpringBoot中JSR303校验

JSR 303 是 Java EE 的一种标准,用于基于注解的对象数据验证。在Spring Boot应用中,你可以通过添加注解直接在POJO类中声明验证规则。这样可以确保在使用这些对象进行操作之前,它们满足业务规则。个人认为非常有用的,因为它减少了代码中的校验逻辑,使得校验逻辑更加集中且易于管理。

2024-07-23 16:53:18 315

原创 springboot给属性赋值的两种方式(yaml与properties)

在Spring Boot中,配置文件是用来设置应用程序的各种参数和操作模式的重要部分。Spring Boot支持两种主要类型的配置文件:properties文件和YAML文件。这两种文件都可以用来定义相同的配置,但它们在格式和表达能力上有所不同。

2024-07-23 16:39:21 597

原创 Spring MVC中Restful风格引入

支持注解:Spring的RestController和RequestMapping等注解使得创建RESTful服务变得简单直观。数据绑定:自动的数据绑定支持,可以将请求自动转换为模型对象,同时也支持多种数据格式的响应,如XML、JSON等。异常处理:通过ExceptionHandler提供了统一的异常处理机制。依赖注入:利用Spring的依赖注入优势,更好地管理服务层。{id} :用户的唯一标识符。{a}和{b}:这两个参数可以用于业务逻辑中的其他目的,比如作为查询参数或用于修改返回的数据。

2024-07-12 20:03:23 640

原创 MyBatis中复杂查询(一对多和多对一)

在MyBatis中处理一对多(1)和多对一(N:1)关系是常见的需求,尤其是在操作数据库中存在关联表时。这些关系的管理能让数据查询更加直观和灵活。下面分别介绍如何在MyBatis中配置和查询这两种类型的关系。

2024-07-05 14:54:16 347

原创 Mybatis使用注解开发

通过以上步骤,可以实现 MyBatis 的注解开发,使得持久层代码更加清晰,减少了 XML 配置的繁琐,提高了开发效率。在实际应用中,还需要考虑事务管理、连接池配置等因素以保证应用的健売和性能。

2024-07-04 14:32:36 316

原创 Mybatis实现流程

创建一个MyBatis映射器XML文件,用于映射SQL查询到 UserDAO接口。//此处对应接口类//标签id="getList"对应接口的方法名字

2024-06-30 18:28:14 262

原创 Spring动态代理详解

私有成员变量rent:它是Rent接口的一个实现,代表被代理的对象。setRent 方法:用于设置代理的目标对象。getProxy 方法:利用ProxynewProxyInstance方法生成代理对象。这个方法需要三个参数:类加载器,接口数组(代理类需要实现的接口),以及一个InvocationHandler实例(当前对象this)。invoke 方法:这是代理实例的方法调用时实际执行的代码。invoke方法可以在调用目标方法前后添加自定义逻辑,本例中只是简单地调用了目标对象的相应方法。//租房。

2024-06-29 13:23:46 756

原创 javaweb中ServletContext的使用

ServletContext是一个强大的 web 应用程序级别的对象,它允许不同的 servlet 共享数据和资源。通过它,开发者可以在 servlet 间传递信息、访问全局资源和记录日志,从而使得 web 应用程序的不同部分能够更好地集成和协作。它特别适合处理那些需要跨多个 servlet 维护状态或共享配置信息的情况。

2024-06-20 22:33:31 378

原创 FactoryBean 接口的使用

Override@Override@Test//获取IOC容器在上述示例中,当请求时,实际上Spring容器会调用的方法返回实例。在Spring中提供了一个强大的机制,用于封装单个对象的创建逻辑,特别是当对象的创建过程比较复杂时(如需要多步骤配置或依赖外部系统资源)。通过使用,可以保持Spring配置的简洁性,同时将复杂的实例化逻辑封装在容易管理的Java类中。

2024-06-11 23:27:14 309 1

原创 spring中基于setting和构造器的注入方式

实现方式:在类中添加对应的属性以及对应的setter方法,在配置文件中使用元素进行注入。

2024-06-11 17:32:47 273 1

原创 Spring中获取bean的三种常用方式

在Spring框架中,一个bean是指由SpringIOC容器管理的一个Java对象。Spring提供了一种依赖注入的机制,可以通过在配置文件中配置bean的定义,实现在代码中通过IOC容器获取bean的实例。根据名称获取Bean方法二根据类型获取Bean方法三 (推荐)根据名称+类型来获取Bean

2024-06-11 17:14:22 350

原创 TCP三次握手四次挥手及time_wait状态解析

如上图,在服务器端发送一个FIN时,客户端会处于time_wait状态。当处于time_wait状态时,我们无法创建新的连接,因为端口被占用。

2023-04-14 14:10:44 1062 1

原创 Layui二级联动绑定数据

【代码】Layui二级联动绑定数据。

2023-03-20 14:53:24 474

原创 JS包含变量组合定义变量名

例如可能需要生成 data1,data2,data3... (后面的数字是根据定义的参数sum来的) 所以我的函数名,应该由 var "data_"+num =100;生成函数名与赋值,但这问题就来了。初始化变量时 等号左边是不允许是表达式的。所以在JS中使用 var "data"+num = 100 这种写法是有问题的。参数的不同而区分的。这就需要我定义一个var num =1,2,3,4,5,6,7去拼接一个共同的字符串data.今天在写js的时候碰到了问题,我有一个页面需要循环生成很多的变量。

2023-03-17 09:31:08 1014

原创 VUE3使用pinia 状态管理

1 pinia 的理解在 vue 2.x 中,vuex是官方的状态管理库,并且 vue3 中也有对应的 vuex 版本。个人认为Pinia语法更加简洁,不必像 vuex 那样定义 state、mutations、actions、getters 等,实现了API 等方式返回状态和改变状态的方法。

2023-02-23 11:34:29 445 2

原创 天勤排序算法汇总

以升序为例,其执行流程可以概括为:每一趟选择当前所有子序列中的一个关键字(通常是第一个)作为枢轴,将子序列中比枢轴小的移到枢轴的前边,比枢轴大的移动到枢轴的后边;当本趟所有的子序列都被枢轴以上述规则划分完毕后会的到新的一组更短的子序列,它们成为下一趟划分的初始序列集。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。复杂度最坏n^2,最好为n。每趟将一个待排序的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为止,复杂度最坏n^2,最好为n。

2022-11-28 15:56:41 479

原创 SQL中case when then else end用法

case when then else end 可以理解为java的if-else if -else。可以理解为流程控制语句或条件控制语句。可以实现资料获取的时候,可以更多的条件和自定义逻辑。1.已知数据按照另外一种方式进行分组,分析。有如下数据:(为了看得更清楚,我并没有使用国家代码,而是直接用国家名作为primary key)国家(country)人口(population)中国600美国100加拿大100英国200法国300日本250德国200墨西哥50印度250根据这个国家人口数据,统计亚洲和

2022-07-12 09:15:51 34492

原创 Vue(element ui)中行操作row参数的使用

在使用element ui或Vue中当我们要对表格中的数据按行进行特殊操作或标记时,通常通过在vue中methods方法中操作row参数来访问该行的索引或是单元格中的数据进行对应操作。

2022-06-29 17:13:00 13104 2

原创 C#List<T>集合类

为了改变数组大小,必须创建新数组,复制数组元素(如果新数组较小,甚至还复制不完),然后更新对原始数组的引用,使其引用新数组。删除一个数组元素,之后所有元素都必须上移-一位。即使这样还是不好使,因为最后一个元素会产生两个拷贝。插入一个数组元素,必须使元素下移一位来腾出空位。但最后一个元素就丢失了!List集合类通过以下功能来避免这些限制。注意:同数组一样用foreach遍历List集合时,不能用循环变量修改集合内容。在遍历List的foreach循环中不能调用Remove, Add或Inse...

2022-06-20 10:14:59 676

原创 C#泛型使用

所谓泛型是指将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。 一种类型占位符,或称之为类型参数。我们知道一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——避免了强制类型转换,增强类型安全和减少装箱、拆箱。  通常一个方法或过程的参数都是有明确的数据类型的。  如 :  public void ProcessData(int i){}  pub

2022-06-17 14:51:53 715

原创 JQuery 属性操作 - attr() 方法

我们在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值需用getAttribute(),而在jquery中,用一个attr()就可以全部实现jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式。1. attr(属性名) //获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回

2022-06-08 14:38:06 9965

原创 Vue中作用域插槽的使用

Vue中的作用域插槽可以让父组件使用插槽时的内容能够访问子组件中的数据,数据在组件自身,但是根据数据生成的结构需要组件的使用者来决定。这里可以先看一个例子,以便更好的理解作用域插槽的作用,在子组件中使用v-for创建一个列表循环,然后在父组件中通过子组件标签category调用,如下例。category子组件:<template> <div class="category"> <ul> <li v-for="(g,inde

2022-05-12 19:53:14 3824 1

原创 c#委托的使用

一、什么是委托?委托是一种动态调用方法的类型,属于引用型。委托是对方法的抽象和封装。委托对象实质上代表了方法的引用(即内存地址)。委托通常是委托某个方法来实现具体的功能。当我们调用委托的时候,委托包含的所有方法将被执行。虽然在定义委托时与方法有些相似,但我们不能将其称为方法。二、委托的定义1.delegate定义一个int返回值、带一个参数的委托:修饰符 delegate 返回值类型 委托名 ( 参数列表 );public delegate int TestDelegate(

2022-05-11 20:31:17 4770

原创 c#中虚方法和抽象方法的应用

一、抽象类它的作用就是产生子类的同时给于子类一些特定的属性和方法。abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的父类。标记为抽象或包含在抽象类中的成员必须通过从抽象类的子类来实现。特点:抽象类不能实例化,抽象函数不能实现,必须在非抽象函数中重写。如果类包含抽象函数,那么类也是抽象的,必须声明为抽象的。...

2022-05-06 15:35:08 1320

原创 c#继承的构造函数问题

一、什么是继承,有什么作用?概念:​ 继承就是在类之间建立一种相交关系,使得新定义的派生类(子类)的实例可以继承已有的基类(父类)的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。作用:​ 继承是面向对象的主要特征之一,它可以让你的代码重复使用,可以节省程序设计的时间,继承就是就是在类之间建立一种相交关系,使得新定义的派生类可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。说明:​ 比如:你继承了你爸爸的一些特征,你爸爸是基类,

2022-05-05 18:27:54 4829

原创 vuex中mapGetters,mapActions使用

vuex运行流程图如下1.Vue Components 是我们的 vue 组件,组件会触发(dispatch)一些事件或动作,也就是图中的 Actions2.我们在组件中发出的动作,肯定是想获取或者改变数据的,但是在 vuex 中,数据是集中管理的,我们不能直接去更改数据,所以会把这个动作提交(Commit)到 Mutations 中3.然后 Mutations 就去改变(Mutate)State 中的数据;4.当 State 中的数据被改变之后,就会重新渲染(Render)到 Vu

2022-04-27 22:10:13 2843

原创 vue中async和await异步编程

async&await是Promise的语法糖,使用他的目的就是用同步的写法,写异步的操作。async 是“异步”的简写, async 用于申明一个异步的 function,await 可以认为是 async wait 的简写,await 用于等待一个异步方法执行完成。当我们函数中需要返回值是promise对象时通常用async和await简化。async作为一个关键字放到函数之前,表示函数是异步的函数,异步函数也就意味着该函数的执行不会阻塞后面代码的执行,等as...

2022-04-21 21:33:57 5269 2

原创 Vue事件总线

1.常见的组件通信方式pros:父组件传子组件自定义事件:子组件传父组件vuex:均可实现插槽:父组件传子组件pubsub-js:均可实现(较少用)$bus全局事件总线:均可实现2.事件总线的介绍如果咱们的应用程序不需要类似Vuex这样的库来处理组件之间的数据通信,就可以考虑Vue中的事件总线来实现。塔相当于一个全局的仓库,任何组件都可以去这个仓库里获取事件,它就类似沟通桥梁的概念...

2022-04-18 16:58:56 6178 1

原创 vue中ref实现对dom的操作

1.获取页面中dom元素通过在元素标签中配置ref属性后,我们可以通过this.$refs.refname来获取dom元素<template> <div id="app"> <div ref="refname">123</div> <button @click="getTest">获取dom</button> </div></template><scr...

2022-04-14 19:47:51 3450 1

原创 HTML中块元素和行内元素对比

最近发现在很多面试中都是一道基础的面试题,当我们初学时可能平时只注重标签语义,忽视了标签行内和块级的特性。这里进行一个总结1.HTML常见的行内元素有:<span>、<a>、<br>、<b>、<strong>、<img>、<input>、<textarea>、<select>、<sup>、<sub>、<em>、<del>可以和其他元素同处一行

2022-04-13 22:09:44 161

空空如也

空空如也

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

TA关注的人

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