自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴声子夜歌的博客

个人学习笔记

  • 博客(1375)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java——OpenSSL工具详解

c 使用:号分隔输出-r 以coreutils的格式输出-d 输出调试信息-hex 以16进制的格式输出中,默认-binary 以二进制的格式输出-sign file 使用文件中的私钥签名摘要-verify file 使用文件中的公钥验证签名-prverify file 使用文件中的私钥验证签名-keyform arg 密钥文件格式,默认PEM-out filename 输出到文件名而不是stdout-signature file 要验证的签名文件-sigopt nm:v 签名参数。

2023-12-01 23:30:01 4

原创 Java——Keytool工具详解

示例:正常的CA签发证书需要收费,所以我们只能用acton.keystore密钥库中的acton的私钥来签发acton.csr,自己给自己签发证书。keytool为java原生自带,安装java后不需要再进行安装,作为密钥和证书管理工具,方便用户能够管理自己的公钥/私钥及证书,用于认证服务。此时已经生成了一个没有经过认证的数字证书,和一个JKS格式的密钥库。示例:将自己签发完毕的acton_sign.cer导入到密钥库。示例:修改acton为newacton。示例:修改密钥库密码。注意:密钥至少为6位。

2023-11-27 20:02:28 83

原创 Java——加密算法详解(二)

DH(Diffie-Hellman)密钥交换算法主要是为了解决密钥交换而发展出来的。DH算法是一个密钥协商算法,仅能用于密钥分配,不能用于加密或解密。DH算法的安全性基于有限域上的离散对数难题,基于这种安全性,通过DH算法进行密钥分配,使得消息的收发双方可以安全地交换一个秘密密钥,再通过这个密钥对数据进行加密和解密处理。算法密钥长度密钥长度默认值工作模式填充方式备注DH512至1024位(密钥长度为64倍数,范围在512-1024位之间)1024无无Java7实现。

2023-11-25 19:06:10 55

原创 Java——加密算法详解(一)

目录加密算法1、概述1.1、加密算法分类1.2、java中的算法1.3、依赖2、Base64(电子邮件传输算法)2.1、Base641)、定义2)、实现原理3)、模型分析4)、Java实现5)、Bouncy Caste实现6)、Commons Codec实现2.2、Url Base641)、定义2)、Java实现3)、Bouncy Castle实现3)、Commons Codec实现3、消息摘要算法(Message Digest)3.1、MD算法1)、定义2)、模型分析3)、Java实现4)、Bouncy

2023-11-24 22:19:45 41

原创 Java——安全机制详解

ClassLoader超类的loadClass方法用于将类的加载操作委托给其父类加载器去进行,只有当该类尚未加载并且父类加载器也无法加载该类时,才调用findClass方法。为来自本地文件系统或者其他来源的类加载其字节码。调用ClassLoader超类的defineClass方法,向虚拟机提供字节码。return age;super();while (-1!

2023-11-15 19:00:32 148

原创 Java——注解详解

注解是那些插入到源代码中使用其它工具可以对其进行处理的标签。这些工具可以在源码层次上进行操作,或者可以处理编译器在其中放置了注解的类文件。注解不会改变程序的编译方式。Java编泽器对于包含注解和不包含注解的代码会生成相同的虚拟机指令。注解的一些可能的用法:注解是由注解接口来定义的:例如,下面的注解具有两个元素:assignedTo和serverity:所有的注解接口都隐式地扩展自接口。这个接口是一个常规接口,不是一个注解接口:注解元素的类型为下列之一:1.2、注解格式每个注解都具有下面这种格式:

2023-11-10 16:37:15 4274

原创 Java——日期与时间详解

旧API:定义在java.util包中,包括DateCalendarTimeZone等新API:java8引入,定义在java.time里,包括ZoneId等LocalDateTime和ZonedDateTime均可格式化。// 自定义输出格式:// 用自定义格式解析://默认地区//2022 一月 12 星期三 15:23//中国地区//2022 一月 12 星期三 15:23//美国地区//下一个工作日@Overridedo {

2023-11-06 03:00:46 227

原创 SpringBoot——全局异常处理

2、4两种通过组合的方式进行异常处理需要考虑到的问题:对于一个请求,如果两个地方都捕捉到了异常,要考虑两次异常处对response响应信息的重复写入问题。比如:异常处理器处理了控制器抛出的异常,写入响应;过滤器处理了过滤器抛出的异常,写入响应。这就会出现响应被写入了两次的问题或者第二次写入响应直接报错。一些处理思路:考虑使用Response代理类。第一次处理时,异常处理器写入的响应信息是写入到Response代理对象的,并可以从Response代理类中得到写入的响应信息;

2023-11-03 23:53:45 81

原创 JWT实现单点登录

UserToken:token中存储的用户信息。因为token可以被解码,所以不要有敏感信息。自定义注解,用于排除指定方法的token检验。ThreadLocal缓存已经登录的用户。用于生成和解析token。

2023-11-03 22:04:11 62

原创 SpringSecurity——集成JWT实现动态权限

目录JWT动态权限1、 表结构2、依赖3、项目结构4、application.yml4、实体5、常量6、配置6.1、Redis6.2、WebMvc6.3、Security7、缓存8、Service8.1、TokenService8.2、SysUserService8.3、SysRoleService8.4、SysPermissionService8.5、LoginService9、Security9.1、OncePerRequestFilter(JWT令牌解析)9.2、FilterInvocationSec

2023-11-03 00:00:47 106

原创 Elasticsearch7.x——spring-boot-starter-data-elasticsearch详解

Spring Data Elasticsearch是Spring Data项目下的一个子模块。查看 Spring Data的官网:http://projects.spring.io/spring-data/Spring Data 的使命是给各种数据访问提供统一的编程接口,不管是关系型数据库(如MySQL),还是非关系数据库(如Redis),或者类似Elasticsearch这样的索引数据库。从而简化开发人员的代码,提高开发效率。Spring Boot与Elasticsearch的对应版本:</

2023-10-30 15:00:18 278

原创 Elasticsearch7.x——High Level REST Client(三)Index APIs

Index Aliases API允许使用名称对索引进行别名,所有API都会自动将别名转换为实际索引名称。Get Index Templates API允许检索一个或多个索引模板的信息。

2023-10-25 22:49:55 138

原创 Elasticsearch7.x——High Level REST Client(二)Search/Sync Search APIs

目录7、Search APIs7.1、SearchSourceBuilder7.1.1、排序(SortBuilder)7.1.2、字段过滤7.1.3、高亮7.1.4、聚合7.1.5、Profile API7.2、QueryBuilder7.2.1、简单查询7.2.2、复合查询7.2.2.1、constant_score query——无关词频的查询7.2.2.2、bool query——逻辑组合查询7.2.2.3、dis_max query——分离最大化查询7.2.2.4、function_score qu

2023-10-25 00:07:27 165

原创 Elasticsearch7.x——High Level REST Client(一)Document API

目录High Level REST Client1、初始化客户端2、配置客户端3、Basic Auth认证4、请求方式4.1、同步请求4.2、异步请求5、设置请求体5.1、手动拼接5.2、XContentBuilder6、Document APIs6.1、Index API6.1.1、提供文档源6.1.2、可选参数6.1.3、响应(Inde Response)6.1.4、异常6.2、Get API6.2.1、可选参数6.2.2、响应(GetResponse)6.2.3、异常6.3、Get Source AP

2023-10-23 16:08:40 136

原创 Elasticsearch7.x——Low Level REST Client详解

它与所有的Elasticsearch版本兼容。RestClient实例可以通过RestClientBuilder类创建,通过RestClient 的 builder(HttpHost …RestClient类是线程安全的,理想情况下与使用它的应用程序具有相同的生命周期。当不再需要时关闭它是非常重要的,这样它所使用的所有资源以及底层http客户端实例及其线程都可以得到释放。一旦创建了RestClient,就可以调用performRequest或performRequestAsync方法来发送请求。

2023-10-22 14:48:55 91

原创 Elasticsearch7.x——Java 访问Rest API

Elasticsearch提供Rest API,所以可以直接直接使用 HTTP 请求,去操作 Es。HTTP 请求工具,可以使用 Java 自带的 HttpUrlConnection,也可以使用一些 HTTP 请求库,例如 HttpClient、OKHttp、Spring 中的 RestTemplate 都可以。在Java中,可以使用java.net包下的URLConnection类来发送HTTP请求。示例:访问_analyze接口。示例:访问_search接口。

2023-10-21 22:20:09 70

原创 Elasticsearch7.x——设置用户密码认证

在执行以上命令后,我们会收到弹出框提示。根据提示输入启用密码后,可以开始设置各种角色的密码,包括 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user。浏览器直接访问http://127.0.0.1:9200,会出现输入用户名、密码的弹窗,输入elastic和123456后,才能看到elasticsearch信息;在以上命令中,elastic是要修改密码的用户名。

2023-10-21 01:05:46 476

原创 Elasticsearch7.x——配置详解

当你想要在其他主机上形成一个有多个节点的集群时,你应该使用 discovery.seed_hosts 设置来提供一个集群中其他(符合主节点的条件的)节点的列表,并且可能是活动的和可连接的,以便启动 发现过程(discovery process)。默认情况下,节点包含以下所有类型: 符合主节点条件的节点(master-eligible)、数据节点(data)、预处理节点(ingest) 以及 机器学习(machine learning)(如果可用) 和 转换(transform)节点。

2023-10-20 23:44:24 125

原创 Elasticsearch——Java API 概述

它与所有的Elasticsearch版本兼容。Elasticsearch在7.17版本之前使用的Java客户端是Java REST Client,从7.17版本开始Elastic官方将Java REST Client标记为弃用(deprecated),并推荐使用新版Java客户端Java API Client。Java API Client是一个用于与Elasticsearch服务器进行通信的Java客户端库,帮助开发人员与Elasticsearch服务器进行通信,开发人员可以更加轻松地开发和维护代码。

2023-10-20 16:29:32 45

原创 Elasticsearch7.x——分析器Analyzer与分析接口Analyze API详解

当内置分析器不能满足您的需求时,可以创建一个custom分析器。零个或多个字符过滤器一个 分析器零个或多个token过滤器。tokenizer:内置或定制的分词器:可选的内置或定制字符过滤器列表filter:可选的内置或定制token过滤器列表:在索引文本值数组时,Elasticsearch会在一个值的最后一个值和下一个值的第一个项之间插入假的“间隙”,以确保短语查询与不同数组元素的两个术语不匹配。

2023-10-20 02:03:43 137

原创 Elasticsearch7.x——Cluster API详解

数据节点对CPU、内存,IO要求较高,在优化的时候需要 监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节 点。该 API 返回基本的索引 metric(度量)(分片数量,存储大小,内存使用)和关于当前集群(编号,角色,系统,jvm 版本,内存使用,cpu 和安装的插件)中节点的信息。在一个生产集群中,对这些节点的职责进行划分是十分 必要的。在Elasticsearch集群中,可以设置候选主节点、数据节点、索 引预处理节点、协调节点四种类的节点,各种类型的节点在集群中扮 演着不同的角色。

2023-10-19 14:13:20 64

原创 Elasticsearch7.x——Index Settings详解

索引级别的设置可以针对每个索引单独设置。

2023-10-18 22:42:52 104

原创 Elasticsearch7.x——Index API详解

目录Index API1、创建索引1.1、索引设置1.2、映射2、获取索引3、更新索引4、删除索引5、判断索引是否存在6、索引别名6.1、创建索引别名6.1.1、基于时间(time-based)的别名6.1.2、基于用户(user-based)的别名6.1.3、创建索引时添加别名6.2、删除索引别名6.3、获取索引别名6.3.1、获取当前集群下的所有别名6.3.2、获取所有索引中有指定别名的6.3.3、通配符匹配指定的索引别名6.4、检查索引别名是否存在6.5、更新索引别名6.5.1、添加别名6.5.2、移

2023-10-18 17:35:30 76

原创 Elasticsearch7.x——索引统计(_stats)详解

fielddata统计信息,fielddata主要用加快text字段排序与聚合的性能,存储词根与文档的映射关系存储在在内存,在内存中进行排序与聚合。get api 操作统计信息,报错missing统计。将es数据flush到磁盘的统计信息。request_cache统计信息。搜索统计信息,包括建议统计信息。索引操作信息(CRUD)统计。translog的统计信息。refresh统计信息。

2023-10-18 15:39:32 127

原创 Elasticsearch7.x——乐观并发控制、refresh参数

Elasticsearch是分布式的,创建、更新或删除文档时,必须将 文档的新版本复制到集群中的其他节点。为了确保旧版本的文档不会覆盖新版本文档,对文档执行的每个 操作都由主分片分配一个序列号,序列号随着每个操作的增加而增 加,因此新操作的序列号肯定比旧操作的序列号更高。这保证了当该请求返回时,其更改对搜索可见,同时防止对被阻塞的请求使用未经检查的资源。这是通过设置索引API或删除API的if_seq_no和 if_primary_term参数来完成的。, 以 更改其存储的每个文档。

2023-10-17 13:34:13 74

原创 Elasticsearch7.x——Search API详解

搜索API(_search)允许用来执行搜索查询并返回匹配的结果。 可以使用简单查询字符串作为参数提供查询(URI形式),也可以使 用请求正文(body形式)。大多数搜索API都是支持多索引的, Explain API除外(用于调试性能)。所有搜索API都支持跨索引机制,并支持多索引语法。例如,搜 索twitter索引中的所有文档:还可以在多个索引中搜索具有特定标记的所有文档,例如当每个 用户有一个索引时:或者使用_all搜索所有可用索引:为了确保快速响应,如果一个或多个分片失败,搜索API将以部

2023-10-16 23:20:25 112

原创 Elasticsearch7.x——Rest API通用参数详解

下面的示例展示了一个搜索请求,该请求搜索过去三天内 logstash的数据,假设索引使用默认的logstash索引名称格式 logstash-yyyy.MM.dd。下表显示了日期数学索引名称的不同形式和解析后的最终索引 名称,是在当前时间为2024年3月22日中午,时区为UTC的情况下解 析的。需要指定距离(如地理距离查询中的距离参数)时,如果未指 定,则默认单位为m。说明:一般情况下,filter_path用来过滤不必要的元数据, _source用于过滤返回的字段,类似SELECT功能。

2023-10-16 00:33:53 296

原创 Elasticsearch7.x——Term vector API详解

Term和Field统计信息是不准确的,仅检索请求文档所在的分片 的信息,而删除的文档不考虑在内。词项向量(term vector)是有elasticsearch在index document的时候产生,其包含对document解析过程中产生的分词的一些信息,例如分词在字段值中的位置、开始和结束的字符位置、分词的元数据payloads等;此外,可以使用per_field_analyzer参数为不同的字段提供不同 的分析器,这对于以任何方式生成Term向量都很有用,特别是在使用 人工文档时。

2023-10-15 15:30:23 44

原创 Elasticsearch7.x——操作文档API详解

目录操作文档单文档API1、Index API1.1、自动创建索引(action.auto_create_index)1.2、强制创建(op_type)1.3、ID自动生成1.4、路由(routing)1.5、分发1.6、超时(time)1.7、等待活动分片1.8、detect——noop参数2、Get API2.1、实时性(realtime)2.2、字段选择(_source)2.3、存储字段(stored_fields)2.4、路由(routing)2.5、preference参数2.6、refresh参

2023-10-15 00:49:19 167

原创 Elasticsearch7.x——Cat命令详解

人类的眼睛,尤其是在看终端时, 需要的是紧凑和对齐的文本。_cat/后不跟任何子节点,返回的结果是目录,也就是可用的 URL节点,这个功能是非常有用的,当忘记某个接口时可以先执行这 个接口。指定响应返回的数据格式:text(默认),json,yaml,smile,cbor。每个命令都接受一个查询字符串参数help,该参数将输出其可用 值。每个命令都接受一个查询字符串参数h,该参数只强制显示这些 列。(通过设置 Accept的HTTP头部的多媒体格式的优先级更高)显示正在进行和先前完成的索引碎片恢复的视图。

2023-10-14 16:28:59 83

原创 Elasticsearch7.x——聚合详解

目录聚合1、Metric——度量值聚合1.1、avg——均值聚合1.1.1、使用脚本计算1.1.2、动态参数修正1.1.3、missing参数——指定缺省值1.2、min——最小值聚合1.3、max——最大值聚合1.4、sum——求和聚合1.5、cardinality——基数统计聚合1.5.1、precision_threshold参数1.6、stats——基本统计聚合1.7、extended_stats——扩展统计聚合1.8、percentiles——百分位统计1.9、percentile_rank——百

2023-10-13 22:02:40 104

原创 Elasticsearch7.x——搜索API详解

场景:例如想要搜索博客信息,搜索的关键字是java,但是我们希望能够将评分较高的博客优先展示出来。但是默认的评分策略是没有办法考虑到评分的,他只是考虑相关性,这个时候可以通过 function_score query 来实现。PUT /blog"title": {},"votes": {"title": "Java集合详解","title": "Java多线程详解,Java锁详解","query": {"match": {默认情况,votes为10的评分更高。

2023-10-12 16:41:31 111

原创 Elasticsearch7.x——映射、类型、映射参数详解

默认情况下,如果没有配置 search_analyzer,则查询时,首先查看有没有search_analyzer,有的话,就用 search_analyzer 来进行分词,如果没有,则看有没有 analyzer,如果有,则用 analyzer 来进行分词,否则使用 es 默认的分词器。Fielddata默认是不启用的,因为text字段比较长,一般只做关键字分词和搜索,很少拿它来进行全文匹配和聚合还有排序,因为大多数这种情况是无意义的,一旦启用将会把text都加载到内存中,那将带来很大的内存压力。

2023-10-10 23:47:08 101

原创 Elasticsearch7.x——中文分词器及扩展

由于闫团是一个比较小的地方,ik的字典中并不包含导致分成两个单个的字符;我们可以将它添加到ik的字典中;在ik的安装目录下config中新增my.dic文件,并将闫团放到文件中:完成之后修改IKAnalyzer.cfg.xml文件,添加新增的字典文件:< properties > < comment > IK Analyzer 扩展配置 </ comment > <!

2023-10-10 17:00:52 62

原创 Elasticsearch——元字段详解

自定义路由可以降低搜索压力。"query": {"match": {搜索请求仅在关联路由值user1和user2的分片上执行。当索引指定了自定义路由的文档时,不能保障所有分片中文档Id的唯一性。事实上,拥有相同Id的文档会根据不同的路由存储在不同的分片中,只能依靠用户来确保编码的唯一性。

2023-10-06 00:14:13 76

原创 Elasticsearch——索引监控及状态管理

其中,primaries仅包含主分片的值,total是主分片和从分片的累计值。在Elasticsearch中,系统提供了接口来监控索引的状态,包括索引的统计信息、碎片信息、恢复的状态和分片的信息,利用这些接口可以随时监控系统索引的状态。注意,当分片在集群中移动的时候,它们的统计数据会被清除,视作它们在其他节点中被创建。存储信息报告分片副本存在的节点、分片副本版本、指示分片副本最近的状态以及在开启分片索引时遭遇的任何异常。可以用来提供分片和索引的更多统计信息,可能是优化信息,删除的“垃圾”数据,等等。

2023-10-05 21:06:36 125

原创 Elasticsearch——索引配置、模板和重建详解

使用keyword分词器、lowercase分词过滤、字符过滤器是html strip,这3部分构成一个分词器。上面示例返回分词结果是this is a test,其中html_strip过滤掉了html字符。也可以指定索引进行分词。

2023-10-04 23:09:58 289 1

原创 Easy Excel——填充Excel

【代码】Easy Excel——填充Excel。

2023-09-23 22:26:03 492

原创 Easy Excel——API

ReadWorkbook 可以理解成一个excelReadSheet 理解成一个excel里面的一个表单。

2023-09-23 21:35:58 97

原创 Easy Excel——写入Excel

Data/*** 所有的 字符串起前面加上"自定义:"三个字*/@ExcelProperty(value = "字符串标题", converter = CustomStringStringConverter.class)/*** 我想写到excel 用年月日的格式*/@DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")@ExcelProperty("日期标题")/*** 我想写到excel 用百分比表示*/

2023-09-23 17:53:38 752

vuedevtools安装.zip

用于Chrome本地安装vue-devtools,无脑安装!!!! 安装过程: 1.Chrome=》设置=》更多工具=》扩展程序 2.打开开发者模式 3.加载已解压的扩展程序=》选择解压后的文件夹 4.重启浏览器 5.如果失败,在加载后的vuedevtools设置页面开启“允许访问文件网址”

2019-10-27

空空如也

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

TA关注的人

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