自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(448)
  • 问答 (7)
  • 收藏
  • 关注

原创 mysql字符串批量替换

上面SQL中,将字段中带分号;的值统一替换为逗号, attr_value为字段名。

2024-09-04 19:00:53 131

原创 MyBatisPlus and和or的混合使用

有一种场景,查询时必须满足条件1,同时必须满足条件2或条件3,即 a and b or a and c。

2024-09-03 17:39:19 366

转载 Linux限制登录用户的IP

在限制IP方面涉及到/etc/host.allow和/etc/host.deny, 允许连接和不允许连接的IP,一般我们都会将/etc/host.deny中增加sshd:all:deny不允许所有用户连接,然后在/etc/host.allow文件中配置允许连接的IP.当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准.2.在/etc/host.allow和/etc/host.deny添加限制。1.在/etc/ssh/sshd_config文件配置限制。

2024-08-27 11:45:04 65 1

原创 Centos服务器配置使用密钥登录

如果密钥没有配备和密码一起使用,为安全起见,可以禁用密码登录,修改/etc/ssh/ssh_config文件,PasswordAuthentication yes 将yes修改为no;HostKey /etc/ssh/ssh_host_rsa_key  # SSH version 2 使用的 RSA 私钥。HostKey /etc/ssh/ssh_host_dsa_key  # SSH version 2 使用的 DSA 私钥。# server 的 Public Key ,那么如果这个 Public。

2024-08-27 11:21:24 700

原创 Linux调整SSH登录访问方式

PubkeyAuthentication yes 公钥证书验证,这个默认是注释的,如果改为公钥(pub文件)登录,需取消注释;AuthorizedKeysFile .ssh/authorized_keys:证书文件,这个不用改;修改SSH登录访问方式,主要是修改/etc/ssh/ssh_config文件的配置项。PasswordAuthentication yes 将yes修改为no;#port 22 去掉前面的#,把22换成想要修改端口号;1.禁用默认端口号22,调整成其他。2.禁用root账户登录。

2024-08-27 09:44:34 266

原创 vue项目打包通过nginx访问

(2)location root配置上传到服务器的路径,由于我的nginx使用docker安装,docker nginx中的html在/usr/share/nginx/html下,所以root的是配置的是/usr/share/nginx/html/dist,这里要根据自己的实际情况来配置,否则会提示404,打包完成后在项目根目录下会生成一个dist文件夹,将dist上传到服务器nginx的html文件夹中,(1)server_name,配置后台地址或域名,VUE_APP_BASE_API参数的值;

2024-08-22 10:43:40 271

转载 解决MySQL 5.7在centos中启动报错:libncurses.so.5和libtinfo.so.5缺失问题

执行完上述步骤后,再次尝试启动MySQL服务,此时应该能够正常启动了。这个方法虽然简单,但在处理较旧的软件和库文件版本不兼容问题时非常有效。

2024-08-14 16:24:02 94

原创 Springboot整合rabbitmq实现消息的发送接收

(3)@RabbitListener 监听消息的方法可以有三种参数(不分数量,顺序):Object content, Message message, Channel channel ,可用于类上和方法上。@RabbitListener 的@RabbitHandler可以组合使用,@RabbitListener用于类上,@RabbitHandler用于方法上,用于区分接收到不同消息或者不同队列的消息。(4)@RabbitHandler 监听消息,用于方法上。# 手动ack消息,不使用默认的消费端确认。

2024-08-04 19:05:38 473

转载 idea 项目结构不见了,项目文件消失,没有任何代码,怎么解决

2、重新导入项目:如果项目文件存在,在 IDEA 中找到项目文件夹,右键单击并选择“刷新”或“重新导入”选项。这将重新加载项目结构并显示在 IDEA 中。1、确认项目是否仍存在:检查项目文件夹是否仍然存在于磁盘上。如果项目文件夹被删除或移动了,您需要将其还原或重新导入到IDEA中。3、打开 IDEA 的 Project Structure 窗口, 选择自己的项目。2)删除项目文件夹下的 .idea 文件夹和 .iml 文件。4、如果是自己不小心移除了项目,可以把项目恢复回来。

2024-08-01 16:38:32 643

原创 Springboot使用Redis实现分布式锁

充分的利用了 Redis 键值数据库提供的一系列优势, 基于 Java 实用工具包中常用接口, 为使用者提供了一系列具有分布式特性的常用工具类。:有多种,比如使用mysql、zookeeper、redis,各种方案有其优缺点,使用哪种方式需结合具体业务来选择。官方文档: https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95。:本地锁如Lock和Syncronized只能锁住本地进程,在分布式应用中,需要使用分布式锁来更好实现特定的业务。

2024-07-29 23:14:47 461

原创 Springboot使用Dynamic-Datasource配置多数据源

grace-destroy: false #是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭。driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置。strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源。primary: master #设置默认的数据源或者数据源组,默认值即为master。

2024-07-29 22:40:28 1410

原创 java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified问题的解决

【代码】java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified问题的解决。

2024-07-28 19:10:03 500

原创 解决:无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

3、拷贝安装目录下node.exe到C:\Users\xxxx(your win name)\AppData\Roaming\npm目录下;2、cmd命令行查看是否能正确显示node版本号,必须确保是最新安装的版本;如果使用vscode开发,将所有vscode窗口关闭后重新打开即可。

2024-07-28 16:28:14 394

原创 IDEA查看maven依赖冲突

刷新依赖,发现冲突的jar不再引入。找到冲突的jar,在下面添加如下代码。

2024-07-28 11:21:41 273

原创 docker安装mysql

解释: skip-name-resolve:跳过域名解析。[mysqld]加入skip-name-resolve。解决 MySQL 连接慢的问题。:将配置文件夹挂载到主机。:将日志文件夹挂载到主机。:将配置文件夹挂载到主机。

2024-07-20 17:42:54 284

原创 Springboot2和Springboot3表单检验的区别

然后启动测试,发现表单验证不生效,经多方查询后才知道,由于项目是使用Springboot3搭建的,在Springboot3中,JAVA JSR303检验需使用。最近公司新项目决定使用Springboot3,由于之前没系统学习过Springboot3,所以表单验证还是使用Springboot2中做法,里面的类,如果使用自己额外导入的validation-api里面的检验规则,将不会生效。PS:上面只列出关键业务代码。

2024-07-20 13:52:01 355

原创 使用MyBatis-Plus报错:Invalid bound statement (not found):无法使用selectById或getById

调用mybatis-plus内部IService的selectById或getById方法时,报异常Invalid bound statement (not found),一般这个异常在mybatis会出现,原因多体现在Mapper接口和对应mapper.xml的绑定关系,或者扫描不到mapper.xml文件,根据这个准则去排查了一遍,发现均没有问题,发现查看实体类发现。主键属性缺少@TableId注解。

2024-07-18 14:26:36 442

原创 mybatis-plus分页的实现

MapperScan定义查询mapper层,PaginationInterceptor在mybatisplus.extension.plugins包里。一、mybatis-plus 3.4/3.5版本以前。

2024-07-17 16:08:26 361

原创 maven多模块项目打包构建的配置

如此便可将有启动类的module打包成Jar,同时将其他引用到子module打包进该jar中。4.有启动类那个module的项目maven packaging要声明为jar。1.根目录下项目maven packaging要声明为pom。5.有启动类那个module的pom.xml引入其他子模块。

2024-07-14 14:40:30 423

原创 MySQL CONCAT函数的简单使用

CONCAT函数用于将mysql中查询多列的值拼成一列显示,

2024-07-10 15:25:04 694

原创 关于ThreadLocal一些常识

一、ThreadLocal简介1.ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。2.ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。

2024-07-09 18:00:53 1248

原创 获取和设置Spring Cookie

一.获取浏览器中的cookiepublic void testGetCookie(HttpServletRequest request){ //request获取的Cookie是个数组 Cookie[] cookies = request.getCookies(); if (cookies != null&&cookies.length>0) { for (Cookie cookie : cookies) { //获取Cookie名称

2024-07-09 16:57:17 771

原创 Spring添加自定义拦截器的方法

/ThreadLocal实质是个map,在同一个线程共享数据/* ** 在目标方法执行前要执行的操作* 返回true放行,返回false拦截* @author**/@Overrideif (member!= null) {//如果临时用户为空则分配一个临时用户/* **业务方法执行以后要执行的操作,保存一个临时用户到浏览器* @author**/@Override//如果不是临时用户,则指定cookie存储一个临时用户信息if(!

2024-07-09 16:43:14 318

原创 解决分布式环境下session共享问题

在分布式环境下,session会存在两个问题第一个问题:不同域名下,浏览器存储的jsessionid是没有存储的。比如登录时认证服务auth.gulimall.com存储了session,但是搜索服务search.gulimall.com是没有这个session的;

2024-07-06 13:51:47 2436

转载 mysql GROUP_CONCAT函数详解

所以解决的办法也就是将group_concat有长度限制设置足够大即可。5.以id分组,把age字段的值打印在一行,逗号分隔,以age排倒序。要多得多,出现group_concat把数据给截断了,什么原因呢?由于group_concat有长度限制,默认1024个字符,4.以id分组,去除冗余的age字段的值并打印在一行。3.以id分组,把age字段的值拼成 一行,分号分隔。首先找到mysql的配置文件,设置如下配置。1. 建表、插入数据。在项目用到如下sql。

2024-07-01 16:42:51 279

原创 在navicat对mysql声明无符号字段

在 MySQL 中,我们可以使用 UNSIGNED 属性来设置列的无符号属性,这意味着该列只能存储非负整数值。对于一些需要存储正整数的列,比如年龄、数量等,

2024-06-29 15:43:19 360

原创 elasticsearch导出和导入数据

日志会打印导出的所有数据,我的索引中有30条数据,导出也是30条记录。导出的数据在设定的/opt目录下。这里我使用的是离线操作的方式,前提:安装了node,

2024-06-28 20:15:15 463

原创 Linux安装nodejs

第8和第9步需注意:创建软连接我使用的是 /usr/bin/ ,使用/usr/local/bin提示node找不到。

2024-06-28 19:08:56 313

转载 ElasticSearch常规操作

POST/customer/external/1/_update   该语句会对比数据内容,数据一样则不会进行update操作,版本号不会更新。"_seq_no": 0, //并发控制字段,每次更新就会+1,用来做乐观锁。"_primary_term": 1, //同上,主分片重新分配,如重启,就会变化。"_primary_term": 1, //同上,主分片重新分配,如重启,就会变化。"_seq_no": 0,//并发控制字段,每次更新就会+1,用来做乐观锁。

2024-06-28 15:11:01 24

原创 ruoyi-vue前后端分离版本使用心得

2.1 创建上面数据源从库shopping-mall,并把ry-vue数据库里的gen_table和gen_table_column同步到shopping-mall,新建ishop_order表,2.2 修改GenController,指定读取从库数据表,重启后台,并启动前端项目ruoyi-vue。# 从数据源开关/默认关闭。未完待续......

2024-06-28 12:00:30 389

转载 使用Docker安装Elasticsearch

Elasticsearch:官方分布式搜索和分析引擎 | Elastic。

2024-06-28 10:54:27 56

原创 使用VisualBox+Vagrant搭建Centos虚拟机环境

PS:通过ipconfig查看本机的IP,如我查到我本地的IP是192.168.56.1,那么虚拟机的IP就指定为192.168.56.10。将最后一行代码的#去掉,取消注释,然后指定虚拟机的访问ip是162.168.56.10.然后在终端输入:vagrant reload命令,重启虚拟机,加载新的配置。虚拟机目录下的Vagrantfile文件是vagrant的配置文件,该文件一般位于C盘\\Users\\HP\\ ,HP为用户名。5.连接虚拟机:vagrant ssh。2.下载并安装Vagrant;

2024-06-20 19:15:41 529

原创 npm install 安装不成功,node-sass缺失,提示python环境缺失的解决办法

注意安装3.6版本以上还是会有问题,建议安装3.6版本以上的,我选择安装的是3.9.6,对应的下载地址为。-sass 重新安装,如提示版本冲突,可使用如下命令解决。npm install 安装不成功的原因。3、执行 npm intall。是因为缺少python的环境。

2024-06-19 19:55:40 1117

转载 使用CompletableFuture进行异步编排

p198 handler最终处理。p201 两任务组合 一个完成。只需要任意一个任务执行结束。p200 两任务组合。等待多个任务全部结束。

2024-06-16 18:48:44 46

原创 线程池详解

注意:关于阻塞队列(BlockingQueue)有很多种实现,如果采用的LinkedBlockingDeque,它默认最大队列长度为Integer的最大值,这是不合理的,根据线程池的执行流程可知,不断往阻塞队列中添加任务最终会导致占满内存,因此我们需要自己指定队列的长度,这一般是由我们通过压力测试来预估访问量大致数量来决定的。答:先来的7个可以立即执行,然后50个放入阻塞队列中,阻塞队列满了,只能最多再开辟13个线程,剩余的30个任务将执行拒绝策略。2)新的任务进来,用 core 准备好的空闲线程执行。

2024-06-16 14:51:34 774

原创 Java实现异步开发的方式

所以在在业务代码开发中,1、2、3)启动线程的方式都不用,应该将所有的多线程异步任务交给线程池来执行。3)、实现 Callable 接口 + FutureTask (可以拿到返回结果,可以处理异常)但1、2、3都不能控制资源,会造成系统资源浪费。只有4)可以控制资源,优点是性能稳定。2)、实现 Runnable 接口。区别:1、2)不能得到返回值。1)、继承 Thread。

2024-06-16 13:43:45 195

原创 Springboot项目ES报异常query_shard_exception

而参数brandId是List类型,允许传入多个值,因此使用termQuery是错误的,它只能传入一个值,很明显是这里调错方法了,多个值的集合、数组,应该使用termsQuery方法,把方法调整过来就不报错了。从caused_by找出导致异常的根本原因,For input string:\"|""。因为查询参数中传入了数组,再查看项目中构建DSL语句,终于找到异常爆发的原因了,

2024-06-15 14:56:17 451

转载 Spring 事务的使用、隔离级别、@Transactional的使用

Spring事务是提供的一种机制,用于管理应用程序中的数据库事务。事务是一组数据库操作的执行单元,要么全部成功提交,要么全部失败回滚,保证数据的一致性和完整性。2. 声明式事务:编程式事务写起来较麻烦,声明式事务用起来较方便。声明式事务可以通过使用注解来实现:当方法执行完成后,如果没有发生异常,事务管理器会自动提交事务;如果发生异常,事务管理器会自动回滚事务。也可以通过在方法上抛出异常手动来触发事务的回滚。

2024-06-14 17:46:48 70

原创 ElasticSearch基本用法

在ElasticSearch中POST 可以创建ES自动生成id类型的document,也可自己指定id。另外PUT还可以 使用op_type=create或_create实行强制创建document。4.局部更新指定的数据(将product索引里id为1进行更新)3.查询索引里所有的数据(product为索引名)PUT id存在为创建,否则为全量替换。

2024-06-12 14:57:59 354

原创 Springboot整合SpringCache+redis简化缓存开发

注意,如果开启了Spring Cache自定义缓存,那么Spring只会来读取自定义缓存的内容,对于自定义缓存中没有的内容,将会缺失。指定key名字,使用key属性,接受spEl表达式,spEl支持的表达式详见官方文档;指定缓存的存活时间ttl,在appliaction配置文件中配置,参见上文描述;@CachePut:使用不影响方法执行的方式更新缓存;@CacheConfig:在类级别共享缓存的相同配置。2.写配置,在配置文件配置使用redis作为缓存。//此处省略具体业务逻辑。

2024-06-09 12:26:44 699

空空如也

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

TA关注的人

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