- 博客(448)
- 问答 (7)
- 收藏
- 关注
原创 MyBatisPlus and和or的混合使用
有一种场景,查询时必须满足条件1,同时必须满足条件2或条件3,即 a and b or a and c。
2024-09-03 17:39:19 394
转载 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 110 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 728
原创 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 287
原创 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 277
转载 解决MySQL 5.7在centos中启动报错:libncurses.so.5和libtinfo.so.5缺失问题
执行完上述步骤后,再次尝试启动MySQL服务,此时应该能够正常启动了。这个方法虽然简单,但在处理较旧的软件和库文件版本不兼容问题时非常有效。
2024-08-14 16:24:02 99
原创 Springboot整合rabbitmq实现消息的发送接收
(3)@RabbitListener 监听消息的方法可以有三种参数(不分数量,顺序):Object content, Message message, Channel channel ,可用于类上和方法上。@RabbitListener 的@RabbitHandler可以组合使用,@RabbitListener用于类上,@RabbitHandler用于方法上,用于区分接收到不同消息或者不同队列的消息。(4)@RabbitHandler 监听消息,用于方法上。# 手动ack消息,不使用默认的消费端确认。
2024-08-04 19:05:38 484
转载 idea 项目结构不见了,项目文件消失,没有任何代码,怎么解决
2、重新导入项目:如果项目文件存在,在 IDEA 中找到项目文件夹,右键单击并选择“刷新”或“重新导入”选项。这将重新加载项目结构并显示在 IDEA 中。1、确认项目是否仍存在:检查项目文件夹是否仍然存在于磁盘上。如果项目文件夹被删除或移动了,您需要将其还原或重新导入到IDEA中。3、打开 IDEA 的 Project Structure 窗口, 选择自己的项目。2)删除项目文件夹下的 .idea 文件夹和 .iml 文件。4、如果是自己不小心移除了项目,可以把项目恢复回来。
2024-08-01 16:38:32 701
原创 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 466
原创 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 1474
原创 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 536
原创 解决:无法将“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 460
原创 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 364
原创 使用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 485
原创 mybatis-plus分页的实现
MapperScan定义查询mapper层,PaginationInterceptor在mybatisplus.extension.plugins包里。一、mybatis-plus 3.4/3.5版本以前。
2024-07-17 16:08:26 368
原创 maven多模块项目打包构建的配置
如此便可将有启动类的module打包成Jar,同时将其他引用到子module打包进该jar中。4.有启动类那个module的项目maven packaging要声明为jar。1.根目录下项目maven packaging要声明为pom。5.有启动类那个module的pom.xml引入其他子模块。
2024-07-14 14:40:30 446
原创 关于ThreadLocal一些常识
一、ThreadLocal简介1.ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。2.ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。
2024-07-09 18:00:53 1249
原创 获取和设置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 805
原创 Spring添加自定义拦截器的方法
/ThreadLocal实质是个map,在同一个线程共享数据/* ** 在目标方法执行前要执行的操作* 返回true放行,返回false拦截* @author**/@Overrideif (member!= null) {//如果临时用户为空则分配一个临时用户/* **业务方法执行以后要执行的操作,保存一个临时用户到浏览器* @author**/@Override//如果不是临时用户,则指定cookie存储一个临时用户信息if(!
2024-07-09 16:43:14 323
原创 解决分布式环境下session共享问题
在分布式环境下,session会存在两个问题第一个问题:不同域名下,浏览器存储的jsessionid是没有存储的。比如登录时认证服务auth.gulimall.com存储了session,但是搜索服务search.gulimall.com是没有这个session的;
2024-07-06 13:51:47 2440
转载 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 369
原创 在navicat对mysql声明无符号字段
在 MySQL 中,我们可以使用 UNSIGNED 属性来设置列的无符号属性,这意味着该列只能存储非负整数值。对于一些需要存储正整数的列,比如年龄、数量等,
2024-06-29 15:43:19 371
原创 elasticsearch导出和导入数据
日志会打印导出的所有数据,我的索引中有30条数据,导出也是30条记录。导出的数据在设定的/opt目录下。这里我使用的是离线操作的方式,前提:安装了node,
2024-06-28 20:15:15 484
转载 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 25
原创 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 392
原创 使用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 534
原创 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 1134
转载 使用CompletableFuture进行异步编排
p198 handler最终处理。p201 两任务组合 一个完成。只需要任意一个任务执行结束。p200 两任务组合。等待多个任务全部结束。
2024-06-16 18:48:44 47
原创 线程池详解
注意:关于阻塞队列(BlockingQueue)有很多种实现,如果采用的LinkedBlockingDeque,它默认最大队列长度为Integer的最大值,这是不合理的,根据线程池的执行流程可知,不断往阻塞队列中添加任务最终会导致占满内存,因此我们需要自己指定队列的长度,这一般是由我们通过压力测试来预估访问量大致数量来决定的。答:先来的7个可以立即执行,然后50个放入阻塞队列中,阻塞队列满了,只能最多再开辟13个线程,剩余的30个任务将执行拒绝策略。2)新的任务进来,用 core 准备好的空闲线程执行。
2024-06-16 14:51:34 776
原创 Java实现异步开发的方式
所以在在业务代码开发中,1、2、3)启动线程的方式都不用,应该将所有的多线程异步任务交给线程池来执行。3)、实现 Callable 接口 + FutureTask (可以拿到返回结果,可以处理异常)但1、2、3都不能控制资源,会造成系统资源浪费。只有4)可以控制资源,优点是性能稳定。2)、实现 Runnable 接口。区别:1、2)不能得到返回值。1)、继承 Thread。
2024-06-16 13:43:45 196
原创 Springboot项目ES报异常query_shard_exception
而参数brandId是List类型,允许传入多个值,因此使用termQuery是错误的,它只能传入一个值,很明显是这里调错方法了,多个值的集合、数组,应该使用termsQuery方法,把方法调整过来就不报错了。从caused_by找出导致异常的根本原因,For input string:\"|""。因为查询参数中传入了数组,再查看项目中构建DSL语句,终于找到异常爆发的原因了,
2024-06-15 14:56:17 459
转载 Spring 事务的使用、隔离级别、@Transactional的使用
Spring事务是提供的一种机制,用于管理应用程序中的数据库事务。事务是一组数据库操作的执行单元,要么全部成功提交,要么全部失败回滚,保证数据的一致性和完整性。2. 声明式事务:编程式事务写起来较麻烦,声明式事务用起来较方便。声明式事务可以通过使用注解来实现:当方法执行完成后,如果没有发生异常,事务管理器会自动提交事务;如果发生异常,事务管理器会自动回滚事务。也可以通过在方法上抛出异常手动来触发事务的回滚。
2024-06-14 17:46:48 73
原创 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 423
原创 Springboot整合SpringCache+redis简化缓存开发
注意,如果开启了Spring Cache自定义缓存,那么Spring只会来读取自定义缓存的内容,对于自定义缓存中没有的内容,将会缺失。指定key名字,使用key属性,接受spEl表达式,spEl支持的表达式详见官方文档;指定缓存的存活时间ttl,在appliaction配置文件中配置,参见上文描述;@CachePut:使用不影响方法执行的方式更新缓存;@CacheConfig:在类级别共享缓存的相同配置。2.写配置,在配置文件配置使用redis作为缓存。//此处省略具体业务逻辑。
2024-06-09 12:26:44 709
空空如也
$.messager.alert()中文显示成???
2017-08-24
在前端页面格式化显示日期
2017-08-22
多文件上传文件数组不为空的判断
2017-08-19
恢复linux系统里的/bin/sh文件
2017-07-08
使用canvas绘制心电图
2017-05-06
内网怎样使用Maven管理JAVA WEB项目
2017-03-24
怎样将一个新的Web项目绑定到已备案的域名
2017-03-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人