自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (2)
  • 收藏
  • 关注

原创 vue3新语法糖<script setup>

vue3 实现组件通信的方式之父子通信,其中包含父组件向子组件传值和子组件向父组件传值,以及点击子组件中的按钮父组件的值发生变化,使用到的方法是 defineProps 和 defineEmits。还记得刚体验 script setup 语法糖的时候,编辑器提示我这是一个实验性的提案,要使用的话,需要固定 Vue 版本。注意,标签绑定ref和使用v-model通过ref获取值,ref.value获取的值得类型是不同的。2、 v-model,第一次 .value 获取的是当前双向绑定中的值)

2023-09-20 10:35:26 167

原创 Java 中的阻塞队列

Java 中的阻塞队列:1. ArrayBlockingQueue :由数组结构组成的有界阻塞队列。2. LinkedBlockingQueue :由链表结构组成的有界阻塞队列。3. PriorityBlockingQueue :支持优先级排序的无界阻塞队列。4. DelayQueue:使用优先级队列实现的无界阻塞队列。5. SynchronousQueue:不存储元素的阻塞队列。6. LinkedTransferQueue:由链表结构组成的无界阻塞队列。7. LinkedBlo

2020-07-09 17:05:20 310

原创 Java8 时间操作

LocalDateTime从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有:本地日期和时间:LocalDateTime,LocalDate,LocalTime; 带时区的日期和时间:ZonedDateTime; 时刻:Instant; 时区:ZoneId,ZoneOffset; 时间间隔:Duration。以及一套新的用于取代SimpleDateFormat的格式化类型DateTimeFormatter。LocalDateTime:最常用的Loc

2020-06-18 15:36:41 903

原创 Java 锁 (自旋锁、排队自旋锁、MCS锁、CLH锁)

自旋锁(SPIN LOCK)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现:import java.util.concurrent.atomic.AtomicReference;public class SpinLock { private AtomicReference<Thread> owner = new

2020-05-28 17:02:34 606 1

原创 Hmac算法

Hmac算法Hmac算法就是一种基于密钥的消息认证码算法,它的全称是Hash-based Message Authentication Code,是一种更安全的消息摘要算法。MAC算法结合了MD5和SHA算法的优势,并加入密钥的支持,是一种更为安全的消息摘要算法。Hmac算法总是和某种哈希算法配合起来用的。例如,我们使用MD5算法,对应的就是HmacMD5算法,它相当于“加盐”的MD5。因此,HmacMD5可以看作带有一个安全的key的MD5。使用HmacMD5而不是用MD5加salt,有如

2020-05-15 17:03:59 1450

原创 SpringBoot缓存使用

一.概念1.主要注解:注解总览:@EnableCaching: 开启spring cache功能 @Cacheable:添加缓存 @CacheEvict:删除缓存 @CachePut:更新缓存,方法依旧执行,通常用于更新方法 @Caching:在一个方法中同时使用多个缓存规则 @CacheConfig:在类级别上设置一些通用的属性2.@Cacheable/@CachePut...

2020-05-05 10:37:00 456

原创 网络协议Http和Https

HTTP通信机制是在一次完整的 HTTP 通信过程中,客户端与服务器之间将完成下列7个步骤:1)建立 TCP 连接:在HTTP工作开始之前,客户端首先要通过网络与服务器建立连接,该连接是通过 TCP 来完成的,该协议与 IP 协议共同构建 Internet,即著名的 TCP/IP 协议族,因此 Internet 又被称作是 TCP/IP 网络。HTTP 是比 TCP 更高层次的应用层协议,...

2020-04-18 10:45:13 640

原创 网络协议TCP和UDP的区别

协议本身区别:TCP:我们都知道 TCP 是面向连接的、可靠的、有序的传输层协议。UDP:是面向数据报的、不可靠的、无序的传输协议,所以 UDP 压根不会建立什么连接。就好比发短信一样,UDP 只需要知道对方的 ip 地址,将数据报一份一份的发送过去就可以了,其他的作为发送方,都不需要关心。数据发送方式的差异:关于 TCP、UDP 之间数据发送的差异,可以体现二者最大...

2020-04-16 16:15:37 492

原创 网络协议TCP

HashMap 线程不安全:java8以后 从原来的 数组-链表 变成 数组-链表-红黑树 从而避免碰撞 如果链表长度大于8 并且 总容量大于64 就会转为红黑树 在进行对比的时候 会减少对比的次数,能快速定位提高效率,除开写,其他的效率都提高了线程安全:可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用Conc...

2020-04-16 16:00:36 1252

原创 MySql存储过程(Java 端 Hiberante 和 JPA 简单实现)

1.创建1个存储过程# 用工具直接创建,创建好以后就是下列这样,编写sql即可,最后使用java调用# 需要注意参数命名问题,否则无法识别会报错CREATE DEFINER=`root`@`%` PROCEDURE `user`(IN `int_1` INT, OUT `num` INT)BEGIN SET num = 1233; SELECT * FROM user_namex;...

2020-03-18 17:08:57 198

原创 XSS跨站脚本攻击处理

跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。处理方法将参数中的特殊字符进行转换例如 input参数值,用户输入为:<script>alert(1);</script>处理后为:&am...

2020-03-11 10:49:32 423

原创 Spring事务管理

前言:Spring事务管理主要包括3个接口,Spring的事务主要是由他们三个共同完成的,其中的PlatformTransactionManager是Spring事务管理的核心接口!这三个事务管理器接口是根据指定的传播行为,返回当前活动的事务,或者创建一个新的事务,参数的类定义一些基本的事务属性。接口1:PlatformTransactionManagerPlatformTra...

2020-01-17 14:45:53 453

原创 centos7自带数据库MariaDB重启和修改密码

1:MariaDB和mysql差不多是mysql的一个分支,完全兼容mysql的命令。2:centos 7 中自带MariaDB, 需要在centos中安装mysql的时候就需要多注意了。3:启动 停止 重启MariaDBsystemctl start mariadb.service #启动MariaDBsystemctl stop mariadb.ser...

2020-01-08 09:59:08 642

原创 SpringBoot属性绑定Environment和Binder

Environment springboot 1.x版本的属性绑定方法。 适合简单属性的获取,不适合复杂对象的绑定。 方法: # 判断是否包含键值 boolean containsProperty(String key); # 获取属性值,如果获取不到返回null String getProperty(String key); ...

2019-12-30 11:04:37 2378

原创 自定义注解@interface

1.注解@target@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。  作用:用于描述注解的使用范围(即...

2019-12-27 09:59:16 479

原创 AspectJ 切入点语法详解 (AOP)

三6.5 AspectJ切入点语法详解6.5.1 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点; within:用于匹配指定类型...

2019-12-26 17:16:56 205

原创 mysql创建用户、用户授权(命令)

一、创建用户命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不...

2019-12-18 10:48:41 3342

转载 使用轻量级工具emoji-java处理emoji表情字符

在之前做博客,测试编辑博客和评论功能时,发现如果输入了emoji表情的话,无法插入数据库,会报错类型不匹配的错误。后来在网上找了很多解决办法,最后发现github上有个很牛逼的轻量级开源工具叫emoji-java。github地址:https://github.com/vdurmont/emoji-java基本使用方法在github的README文件里有说明,不过是英文的,我简单研...

2019-10-28 16:10:38 219

原创 模板引擎 thymeleaf 常用标签

常用标签1:使用案例:1.el表达式取值:2.省略对象直接写属性的方式:3.text 和 utext 的使用和区别:text 会将span标签中的abc值改变,并且会原封不动的显示所有字符utext 则会识别标签后显示类容4.URL 用法:th:field 会将 id设置为name name设置为name 而该input的value值...

2019-09-18 11:06:32 669

原创 ES 搜索24 (wildcard通配符查询 类似 MySQL的like查询)

非常消耗性能:# 使用案例1:{ "query":{ "wildcard":{ "communityName":"*测试*" } }}#使用案例2:{ "query": { "bool": { "must": [ { "bool": { "should": [...

2019-09-03 14:16:11 2108

原创 AES 对称加密 (JDK)

/** * AES 加密 解密 */ //key生成 KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); //长度有 64 112 128 192 256 keyGenerator.init(256); ...

2019-08-27 09:35:41 674

原创 ES 搜索24 (match 和 multi_match 拼写错误的模糊查询 fuzziness 和 fuzzy 关键字)

模糊性模糊匹配对待 “模糊” 相似的两个词似乎是同一个词。首先,我们需要对我们所说的模糊性进行定义。在1965年,Vladimir Levenshtein 开发出了Levenshtein distance, 用来度量从一个单词转换到另一个单词需要多少次单字符编辑。他提出了三种类型的单字符编辑:一个字符替换另一个字符: _f_ox → _b_ox 插入一个新的字符:si...

2019-08-26 14:57:58 2428

原创 ES 搜索22 (function_score 支持的衰减函数 linear、exp 和 gauss)

衰减函数很多变量都可以影响用户对于酒店的选择,像是用户可能希望酒店离市中心近一点,但是如果价格足够便宜,也愿意为了省钱,妥协选择一个更远的住处如果我们只是使用一个 filter 排除所有市中心方圆 100 米以外的酒店,再用一个filter排除每晚价格超过100元的酒店,这种作法太过强硬,可能有一间房在 500米,但是超级便宜一晚只要10元,用户可能会因此愿意妥协住这间房为了解决这个...

2019-08-24 14:35:13 1803

原创 ES 搜索21 (function_score查询 关键字 functions 和 weight 滤集提升权重分)

过滤集提升权重回到忽略 TF/IDF里处理过的问题,我们希望根据每个度假屋的特性数量来评分,当时我们希望能用缓存的过滤器来影响评分,现在function_score查询正好可以完成这件事情。到目前为止,我们展现的都是为所有文档应用单个函数的使用方式,现在会用过滤器将结果划分为多个子集(每个特性一个过滤器),并为每个子集使用不同的函数。functions是一个数组,裡面放著的...

2019-08-23 16:00:18 1523

原创 ES 搜索1 (精确查找)

term 查询数字我们首先来看最为常用的term查询,可以用它处理数字(numbers)、布尔值(Booleans)、日期(dates)以及文本(text)。我们想要做的是查找具有某个价格的所有产品,有关系数据库背景的人肯定熟悉 SQL,如果我们将其用 SQL 形式表达,会是下面这样:SELECT documentFROM productsWHERE price ...

2019-08-23 15:29:59 1740

原创 ES 搜索3 (查找多个精确值)

查找多个精确值term查询对于查找单个值非常有用,但通常我们可能想搜索多个值。如果我们想要查找价格字段值为 $20 或 $30 的文档该如何处理呢?不需要使用多个term查询,我们只要用单个terms查询(注意末尾的s),terms查询好比是term查询的复数形式(以英语名词的单复数做比)。它几乎与term的使用方式一模一样,与指定单个价格不同,我们只要将t...

2019-08-23 15:29:55 5707

原创 ES 搜索4 (范围)

范围本章到目前为止,对于数字,只介绍如何处理精确值查询。实际上,对数字范围进行过滤有时会更有用。例如,我们可能想要查找所有价格大于 $20 且小于 $40 美元的产品。在 SQL 中,范围查询可以表示为:SELECT documentFROM productsWHERE price BETWEEN 20 AND 40Elasticsearch 有range查询,...

2019-08-23 15:29:51 1847

原创 ES 搜索5 (处理 Null 值)

处理 Null 值我们的目标是找到那些被设置过标签字段的文档,并不关心标签的具体内容。只要它存在于文档中即可,用 SQL 的话就是用IS NOT NULL非空进行查询:SELECT tagsFROM postsWHERE tags IS NOT NULL在 Elasticsearch 中,使用exists查询的方式如下:GET /my_index/posts/...

2019-08-23 15:29:47 1788

原创 ES 搜索引擎 介绍 和基础命令

MVC 配置(非Boot)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="htt...

2019-08-23 15:29:42 390

原创 ES 搜索6 (匹配查询)

匹配查询匹配查询match是个核心查询。无论需要查询什么字段,match查询都应该会是首选的查询方式。它是一个高级全文查询,这表示它既能处理全文字段,又能处理精确字段。这就是说,match查询主要的应用场景就是进行全文搜索,我们以下面一个简单例子来说明全文搜索是如何工作的:单个词查询我们用第一个示例来解释使用match查询搜索全文字段中的单个词:...

2019-08-23 15:29:38 967

原创 ES 搜索7 (多词查询)

多词查询如果我们一次只能搜索一个词,那么全文搜索就会不太灵活,幸运的是match查询让多词查询变得简单:GET /my_index/my_type/_search{ "query": { "match": { "title": "BROWN DOG!" } }}上面这个查询返回所有四个文档:{ ...

2019-08-23 15:29:34 1895 1

原创 ES 搜索8 (组合查询)

组合查询在组合过滤器中,我们讨论过如何使用bool过滤器通过and、or和not逻辑组合将多个过滤器进行组合。在查询中,bool查询有类似的功能,只有一个重要的区别。过滤器做二元判断:文档是否应该出现在结果中?但查询更精妙,它除了决定一个文档是否应该被包括在结果中,还会计算文档的相关程度。与过滤器一样,bool查询也可以接受must、must_no...

2019-08-23 15:29:26 489

原创 ES 搜索9 (布尔匹配)

如何使用布尔匹配目前为止,可能已经意识到多词match查询只是简单地将生成的term查询包裹在一个bool查询中。如果使用默认的or操作符,每个term查询都被当作should语句,这样就要求必须至少匹配一条语句。以下两个查询是等价的:{ "match": { "title": "brown fox"}}{ "bool": { "sh...

2019-08-23 15:29:22 219

原创 ES 搜索11 (查询语句提升权重)

查询语句提升权重当然bool查询不仅限于组合简单的单个词match查询,它可以组合任意其他的查询,以及其他bool查询。普遍的用法是通过汇总多个独立查询的分数,从而达到为每个文档微调其相关度评分_score的目的。假设想要查询关于 “full-text search(全文搜索)” 的文档,但我们希望为提及 “Elasticsearch” 或 “Lucene” 的文档给予...

2019-08-23 15:29:19 4177 3

原创 ES 搜索12 (控制字段的存储选项)

控制字段的存储选项ES底层使用Lucene存储数据,主要包括行存(StoreFiled)、列存(DocValues)和倒排索引(InvertIndex)三部分。 大多数使用场景中,没有必要同时存储这三个部分,可以通过下面的参数来做适当调整:StoreFiled: 行存,其中占比最大的是source字段,它控制doc原始数据的存储。在写入数据时,ES把doc原始数据的整个json结构体当做一...

2019-08-23 15:29:14 432

原创 ES 测试分词

es中的分词器由三部分组成1、character filter:作用:先对要进行分析的文本进行一下过滤,比如html文档,去除其中的标签,比如<p>、<html>等等;2、tokenizer:作用:对文本进行分词,把要进行分析的文本根据所指定的规则,按照其规则把文本拆分为单词,,只可以指定一个;3、tokenizer filter:作用:把分好的词条(也即将to...

2019-08-23 15:29:10 1689

原创 ES 搜索16 (自定义 _all 字段 copy_to关键字)

自定义 _all 字段在all-field字段中,我们解释过_all字段的索引方式是将所有其他字段的值作为一个大字符串索引的。然而这么做并不十分灵活,为了灵活我们可以给人名添加一个自定义_all字段,再为地址添加另一个_all字段。Elasticsearch 在字段映射中为我们提供copy_to参数来实现这个功能:PUT /my_index{ "map...

2019-08-23 15:28:59 1430

原创 ES 搜索2 (组合过滤器)

组合过滤器前面的两个例子都是单个过滤器(filter)的使用方式。在实际应用中,我们很有可能会过滤多个值或字段。比方说,怎样用 Elasticsearch 来表达下面的 SQL ?SELECT productFROM productsWHERE (price = 20 OR productID = "XHDK-A-1293-#fJ3") AND (price != 30...

2019-08-23 15:28:46 891

原创 ES 搜索15 (multi_match 查询 及 best_fields、most_fields、cross_fields 3种策略介绍)

multi_match 查询multi_match查询为能在多个字段上反复执行相同查询提供了一种便捷方式。multi_match多匹配查询的类型有多种,其中的三种恰巧与了解我们的数据中介绍的三个场景对应,即:best_fields、most_fields和cross_fields(最佳字段、多数字段、跨字段)。默认情况下,查询的类型是best_fields...

2019-08-23 15:28:43 2000

原创 ES 搜索10 (match_phrase 搜索 多值字段)

多值字段对多值字段使用短语匹配时会发生奇怪的事。想象一下你索引这个文档:PUT /my_index/groups/1{ "names": [ "John Abraham", "Lincoln Smith"]}然后运行一个对Abraham Lincoln的短语查询:GET /my_index/groups/_search{ "query": { ...

2019-08-23 15:28:32 4896

session 共享 tomcat-redis-session-manager 所需要的jar (绝对可用)

session 共享 tomcat-redis-session-manager 所需要的jar 和 redis-data-cache.properties文件 (绝对可用) 已经完整测试

2019-04-21

SVN 服务器端

SVN 服务器端,适用于64位windows系统,企业最常用的版本控制系统

2018-08-31

空空如也

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

TA关注的人

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