
java
文章平均质量分 56
渔老师
专注企业电商采购领域解决方案
展开
-
easyExcel 写复杂表头
easyExcel原创 2023-02-19 22:48:54 · 1574 阅读 · 0 评论 -
JSON与其他类型的转化
JSON与其他类型的转化原创 2022-11-30 21:09:09 · 235 阅读 · 0 评论 -
分层架构理论基础
三层架构。原创 2022-11-30 16:57:36 · 2230 阅读 · 0 评论 -
【SpringBoot请求外部接口的方法】
configuration = FeignMroConfig.class和@RequestHeader(“token”)原创 2022-10-31 21:26:53 · 407 阅读 · 0 评论 -
SpringBoot 使用RestTemplate实现调用服务
SpringBoot 使用RestTemplate实现调用服务原创 2022-10-28 17:16:59 · 288 阅读 · 0 评论 -
RabbitMQ一对多使用
RabbitMQ一对多简单使用原创 2022-09-30 21:04:56 · 1357 阅读 · 0 评论 -
Flyway 入门教程
Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。原创 2022-09-30 09:40:20 · 1110 阅读 · 0 评论 -
多重if优化
多重if的简单优化原创 2022-08-31 21:54:17 · 4009 阅读 · 0 评论 -
Dubbo Spring Cloud
对外部提供RESTAPI服务是一件非常好的事情,但是如果内部调用也是使用HTTP调用方式,就会显得显得性能低下,SpringCloud默认使用的Feign组件进行内部服务调用就是使用的HTTP协议进行调用,这时,我们如果内部服务使用RPC调用,对外使用RESTAPI,将会是一个非常不错的选择,恰巧,DubboSpringCloud给了我们这种选择的实现方式。dubbo.cloud.subscribed-services表示要订阅服务的服务名,可以配置’*',代表订阅所有服务,不推荐使用。...转载 2022-08-01 14:02:42 · 456 阅读 · 0 评论 -
isNotBlank与isNotEmpty
isNotEmpty()和isNotBlank()原创 2022-07-31 22:24:53 · 1130 阅读 · 0 评论 -
【时间的比较】
关于时间的比较方法。原创 2022-07-31 21:42:27 · 1349 阅读 · 0 评论 -
IP属地如何高效率识别
IP属地显示各大平台已经有更新,抖音、今日头条、知乎、小红书等,作为一个技术,如果实现获取IP属地呢,正好近期需要做一个IP属地跳转,识别IP的归属地如果单纯的靠调用接口获取属地信息在效率上难以保证,因此给大家分享一个强大的离线IP地址定位库ip2region获取IP归属地。获取IP属地那么重要的步骤就是获取IP地址,怎么获取ip地址呢?......原创 2022-07-31 08:38:43 · 784 阅读 · 0 评论 -
API文档工具knife4j使用详解
编写api文档是一个费时的操作,过程枯燥。那有没有一种可以自动生成api文档的工具呢,答案是有,比如swagger就是可以自动生成的,像yapi、apidoc、showdoc等等是需要我们编辑的,这样较为复杂且容易遗漏。但是他们的界面很好看,那有没有一种好看的的api文档工具呢,答案也是有,swagger文档增强工具knife4j,界面和功能比swagger更好看,但是是基于swagger开发的。想要使用knife4j非常简单,只要在Springboot项目中引入knife4j的依赖即可...原创 2022-06-30 20:00:00 · 9284 阅读 · 0 评论 -
RSA加密算法的常用工具类
这里提供一个RSA加密算法的工具类,其中包含生成密钥、加密、解密、加签、验签等RSA常用的方法,可以直接使用转载 2022-06-24 15:15:52 · 1391 阅读 · 1 评论 -
RabbitMQ重试机制+死信队列
RabbitMQ的基本使用、ACK确认机制这里就不赘述了,这里主要是想实现一个应用场景:消息消费失败后重试至多三次,仍失败则加入死信队列一、重试机制首先说一下RabbitMQ的消息重试机制,顾名思义,就是消息消费失败后进行重试,重试机制的触发条件是消费者显式的抛出异常,这个很类似@Transactional,如果没有显式地抛出异常或者try catch起来没有手动回滚,事务是不会回滚的。以下代码可以触发重试机制还有一种情况就是消息被拒绝后重新加入队列,比如basic.reject和.转载 2022-05-30 16:50:31 · 2251 阅读 · 1 评论 -
springboot使用websocket实现服务端和客户端的交互
WebSocket是什么WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。websocket 协议是在 http 协议上的一种补充协议,是 html5 的新特性,是一种持久化的协议。WebSocket的优势我们都知道HTPP协议是基于请求响应模式,并且无状态的。HTTP通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息。举例来说,我们想要查询当前的排队情况,只能是页面轮原创 2022-05-29 18:09:10 · 2266 阅读 · 0 评论 -
RestHighLevelClient Could not autowire. There is more than one bean of ‘RestHighLevelClient‘ type.
在使用SpringBoot整合Elasticsearch7.x的时候,创建RestHighLevelClient的时候出现了一下问题具体的配置文件如下package priv.cwr.es.config;import org.elasticsearch.client.RestHighLevelClient;import org.springframework.beans.factory.annotation.Value;import org.springframework.contex原创 2022-04-30 23:27:32 · 362 阅读 · 0 评论 -
spring-cache的基础使用
缓存的作用1)加速系统的访问,以及提升系统性能; 比如:如果商品信息存在数据库中;每次访问都要查询数据库,耗时;并且访问量大时,系统压力大;可以将这类热点数据存入缓存;当访问数据时,先从缓存中找,如果缓存中没有,就从数据库找到并放入缓存方便下次查找;使用缓存可以提升性能,因为应用程序和缓存的交互相对较快;2)保存临时数据 比如:手机验证之类的临时信息,通常需要在几分钟之内删除;如果存入数据库,不划算,影响系统性能;可以将这类数据存入缓存;Java CachingJava Cac原创 2022-04-29 14:54:04 · 479 阅读 · 0 评论 -
分析synchronized
一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。 诚然,随着Javs SE 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了。实现原理synchronized可以保证方法原创 2022-04-28 15:42:04 · 135 阅读 · 0 评论 -
Arthas 解读
前言什么是JVMTIJVMTI 的全称是 JVM Tools Interface,是Java虚拟机提供的一整套后门。通过这套后门可以对虚拟机方方面面进行监控,分析,甚至干预虚拟机的运行。JVMTI 本质上是在JVM内部的许多事件进行了埋点。通过这些埋点可以给外部提供当前上下文的一些信息。它是分析工具与调试器的基础。什么是Instrumentation虽然java提供了JVMTI,但是对应的agent需要用C/C++开发,对java开发者而言并不是非常友好。因此在Java SE 5的新特性中加入原创 2022-04-02 14:32:11 · 848 阅读 · 0 评论 -
EasyExcel的使用
1、什么是EasyExcelEasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目它有以下优势:注解式自定义操作 输入输出简单,提供输入输出过程的接口 支持一定程度的单元格合并等灵活化操作 可以基于对象的方式操作Excel 节省内存 EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析二、基本使用1、简单导出GoodsSimpleVo.java...原创 2022-03-30 18:41:35 · 1086 阅读 · 0 评论 -
easy-es简单应用
对于使用过mybatis-plus的开发者来说,可以完全依葫芦画瓢的搬用mybatis-plus的结构、唯一不用的一点就是继承的BaseEsMapper<T>,springboot启动扫描的注解@EsMapperScan("*"),所以使用起来是非常友好,在简单的CURD功能上,感知不到这个是ES搜索引擎,更方便开发者使用和学习。原创 2022-03-30 17:19:29 · 7998 阅读 · 0 评论 -
开启独立事务
大概的结构是这样的,有两个service,一个是ExcelImportService,另一个是MaterialService,调用过程就是ExcelImportService作为入口调用MaterialService,二话不说直接上代码ExcelImportService.java/** * Excel导入 * * @param excelFile excel文件 * @param params 参数 * @return */转载 2022-02-28 14:04:39 · 906 阅读 · 0 评论 -
一口气学会爬虫之Jsoup
Jsoup是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。jsoup 的主要功能如下:从一个 URL,文件或字符串中解析 HTML;使用 DOM 或 CSS 选择器来查找、取出数据;可操作 HTML 元素、属性、文本;引入依赖包<dependency> <groupId>org.jsoup</groupId&g原创 2022-02-26 13:41:19 · 1256 阅读 · 0 评论 -
SpringBoot读取配置文件(读取属性、映射对象)
从配置文件中读取属性或对象这是一个非常普遍也非常基础的一个操作,今天就和大家分享一下如何读取配置文件里的信息。1、yml配置文件r: config: datasource: driver: "r-driver" url: "r-url" username: "r-username" password: "r-password" remark: "this is remark"2、需要映射的对象package priv.cwr.co原创 2022-01-30 09:11:58 · 626 阅读 · 0 评论 -
Spring Cloud Alibaba使用服务注册与发现
什么是NacosNacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。在接下里的教程中,将使用Nacos作为微服务架构中的注册中心(替代:eurekba、consul等传统方案)以及配置中心(spring cloud config)来使用。安装Nacos下载地原创 2022-01-28 14:25:36 · 316 阅读 · 0 评论 -
apache ab测试的参数
Concurrency Level: 并发量。(500)Time taken for tests: 整个测试所用的时间。(34.809 s)Complete requests: 完成的请求数。(1000)Failed requests: 失败的请求数。(0)Non-2xx responses: 如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数(这些请求并不算在失败的请求中)。(1000)原创 2021-12-31 21:52:21 · 595 阅读 · 0 评论 -
采用工具类excelutil操作excel表格 将表格内容读取出来 以json当时展示数据
1、在pom.xml中导入maven坐标<dependency> <groupId>net.oschina.likaixuan</groupId> <artifactId>excelutil</artifactId> <version>3.0.1</version></dependency>2、使用方法+、web前端上传注意事项<form action="/e2/t4"原创 2021-12-30 21:24:36 · 952 阅读 · 0 评论 -
Java 下载网络图片到项目目录
引入依赖<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.8.0</version></dependency>项目结构编写代码package priv.cwr.zip; import org.apache.commons.io.FileUtils;import原创 2021-12-30 18:01:06 · 217 阅读 · 0 评论 -
使用反射加载类以及方法的调用
反射很大的一个优点就是灵活性高,能够动态(运行时)加载资源,这里分享一下如何使用反射加载类以及调用方法二话不说,直接上代码,目的是使用反射创建ReflexDemo类对象以及调用它的方法。目录结构如下(普通Java项目)ReflexDemo.javapackage priv.cwr.demo; import java.util.Map;import java.util.UUID; /** * 反射Demo类 */public class ReflexDemo { pu原创 2021-12-01 10:25:39 · 180 阅读 · 0 评论 -
dockerfile的应用
什么是Dockerfile?Dockerfile本质上其实是包含各种指令的文本文档。可以使用在命令行中调用任何命令。Docker通过读取Dockerfile中的指令自动生成镜像。docker build命令用于从Dockerfile构建映像。Dockerfile的基本结构Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。Dockerfile文件说明Docker以从上到下的顺序运行Dockerfile的指令。原创 2021-10-31 17:37:35 · 336 阅读 · 0 评论 -
Java8 Stream流
Steam流是Java8新增的特性,对于集合的处理更加简洁,有更高的可读性和可维护性,可以使用Lambda表达式作为参数Goods.classpackage priv.cwr.model; import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import priv.cwr.enums.GoodsTypeEnum; import java.math.BigDecimal;原创 2021-10-29 14:31:18 · 105 阅读 · 0 评论 -
大型网站优化总结
大型网站是指24小时内 PV达到百万千万级别 UV达到十万级别 IP达到以上1.判断大型网站标准PV(page views)即页面浏览量;用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。UV(unique visitor),是指不同的、通过互联网访问、浏览这个站点的自然人IP指访问某个站点的不同IP地址的数量一般情况下,统计UV数应该大于等于IP数,但有些情况下,有可能UV数会小于IP数2. 大型网站带来的问题大并发:在同一个时间点,有原创 2021-10-08 17:05:55 · 163 阅读 · 0 评论 -
java Gecco的爬虫框架的使用
Gecco是一款用java语言开发的轻量化的易用的网络爬虫。主要特征:简单易用,使用jquery的selector风格抽取元素支持页面中的异步ajax请求支持页面中的javascript变量抽取利用Redis实现分布式抓取,参考gecco-redis支持下载时UserAgent随机选取支持下载代理服务器随机选取支持结合Spring开发业务逻辑,参考gecco-spring支持htmlunit扩展,参考gecco-htmlunit支持插件扩展机制GeccoEngine基本配置项loop原创 2021-09-30 20:45:15 · 470 阅读 · 0 评论 -
Mybatis @Select in
要在Mybatis中使用in查询主要有三种方式:1.XML2.Mybatis-plus里的QueryWrapperqueryWrapper.lambda().in(ToolUtil.isNotEmpty(ids), User::getId, ids);3.@Select注解XML\color{red}{XML}XML的方式编写SQL从功能上来说是非常完备的,但是最大的缺点就是编写成本高,复杂,QueryWrapper\color{red}{QueryWrapper}QueryW原创 2021-09-30 16:12:43 · 5933 阅读 · 0 评论 -
docker命令的使用
1、DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edi原创 2021-09-29 21:25:52 · 216 阅读 · 0 评论 -
java 对图形矩阵进行升维和降维
package com.mro.imageDeal.utility;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import org.opencv.core.CvType;import org.opencv.core.Mat;import org.opencv.imgcodecs.Imgcodecs;import org.springframework.stereotype.Component;原创 2021-08-31 16:46:41 · 266 阅读 · 0 评论 -
Rocky Linux一个可用于生成环境的Linux
2020年12 月份,CentOS 官网正式宣布,将停止维护 CentOS Linux,并将更多资金和人力投入到 CentOS Stream中。而 Rocky Linux 是红帽宣布放弃 CentOS Linux 后,由 CentOS 联合创始人 Gregory Kurtzer创建的 CentOS 发行版,旨在继承 CentOS 的社区属性。页面地址Rocky Linux在长达7个月的努力下,宣布Rocky Linux 8.4在x86_64和aarch64平台上已经达到了生产可用标准。下载.原创 2021-08-29 17:29:29 · 1701 阅读 · 0 评论 -
springboot整合jwt权限验证
JSON Web Token是目前最流行的跨域认证解决方案,适合前后端分离项目通过Restful API进行数据交互时进行身份认证**关于有效期**由于jwt是直接给用户的,只要能验证成功的jwt都可以被视作登录成功,所以,如果不给jwt设置一个过期时间的话,用户只要存着这个jwt,就相当于永远登录了,而这是不安全的,因为如果这个令牌泄露了,那么服务器是没有任何办法阻止该令牌的持有者访问的(因为拿到这个令牌就等于随便冒充你身份访问了),所以往往jwt都会有一个有效期,通常存在于载荷部分,下面是.原创 2021-07-30 21:02:34 · 262 阅读 · 0 评论 -
常用安全防范
1,sql监听,防止全库全表删除修改mybatis-plus InnerInterceptor2,数据库安全保护// 加密配置 mpw: 开头紧接加密内容( 非数据库配置专用 YML 中其它配置也是可以使用的 )spring: datasource: url: mpw:qRhvCwF4GOqjessEB3G+a5okP+uXXr96wcucn2Pev6Bf1oEMZ1gVpPPhdDmjQqoM password: mpw:Hzy5iliJbwDHhjLs1L0j6w==原创 2021-07-30 17:44:17 · 165 阅读 · 0 评论