自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 问答 (8)
  • 收藏
  • 关注

原创 Redis基本数据类型命令和事务操作

每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。从输入multi命令开始,输入的命令都会进入命令队列中,但不会执行,直到输入exec后,Redis会将之前的命令队列中的命令一次执行。本身是一个字符串,不是数据类型,数组的每个单元只能存放0和1,数组的下标在Bitmaps叫做偏移量。事务的错误处理:组队的时候失败,则执行的时候也会失败,所有命令都不会成功;组队的时候成功,执行时出错,那么出错指令执行失败,其他命令会成功;

2024-03-04 15:02:48 1115

原创 开发SDK&&自定义一个starter

这里的lmapi.client就是starter里的LMApiClientConfig类上注释@ConfigurationProperties(“lmapi.client”)maven install,打包成功后,去maven仓库下去找,路径是pom.xml文件的groupId。修改maven配置成自己的路径,后面会在这个路径的maven仓库中找到这个starter.在springboot启动时,它会加载这个文件,并根据其中的配置项自动进行相应的配置.调用者在pom.xml引入这个依赖,加载。

2024-03-04 14:58:01 512

原创 快速生成Swagger + Knif4j接口文档

正常访问到接口文档了:http://ip:port/api/doc.html。在appilcation.yaml中导入配置。

2024-03-04 14:53:23 437

原创 笔记:idea常用快捷键

在每次修改代码之后,run之前 Ctrl+shift+F9,Recompile重新编译,这时候target下的classes文件中的代码就会变成修改后的代码。ctrl+alt+方向键左键 移到上一次光标的位置。Ctrl+Alt+O 自动删除未使用的导入语句。给new自动赋值 Ctrl+Alt+V。Ctrl+Shift+R 全局搜索代换。Ctrl+Alt+L 自动格式化。Ctrl+R 当前界面搜索代换。复制当前行 ctrl+D。

2024-03-04 14:50:45 144

原创 数据层解决方案SQL+NoSQL redis

模糊查询:db.集合.find({域名:/正则表达式/}) //等同SQL中的like,比like强大,可以执行正则所有规则。Tomcat提供DataSource:HikariCP不可用的情况下,且在web环境中,将使用tomcat服务器配置的数据源对象。条件连接查询:db.集合.find({$and:[{条件1},{条件2}]}) //等同于SQL中的and、or。通用配置无法设置具体的数据源配置信息,仅提供基本的连接相关配置,如需配置,在下一级配置中设置具体设定。

2024-03-04 14:50:13 954

原创 笔记:工作中实际用到的Java方法

*** 自定义业务异常类*//*全局异常处理*/@Slf4j/*** 异常处理方法* @return*/String msg = split[2] + "已存在";return R.error("未知错误");/*** 异常处理方法* @return*/判断是JSON对象还是JSON数组就看,最外边是{}还是[],{}就是JSON对象。List<Integer> list = parseArray(json类型的数据, Integer.class);

2024-03-04 10:31:43 606

原创 笔记:java爬虫,获取数据

获取不同类型的数据源1、获取⽂章从互联网上获取基础数据=>爬虫抓取:https://www.code-nav.cn/learn/passage获取到⽂章后要⼊库(定时获取或者只获取⼀次),离线抓取。

2024-03-04 10:26:52 1114

原创 笔记:xxljob中的权限拦截器

/自己定义的权限拦截器@Resource@Override//对全部的接口进行权限拦截这个注解可以用在controller层的接口上/*** 登录拦截 (默认拦截)*//*** 要求管理员权限* @return*/

2024-03-04 10:25:20 303

原创 笔记:配置类实现WebMvcConfigurer接口具体可以干什么

8.返回值处理器(Return Value Handlers):通过addReturnValueHandlers方法可以注册自定义的返回值处理器,用于处理控制器方法的返回值并生成响应。7.参数解析器(Argument Resolvers):通过addArgumentResolvers方法可以注册自定义的参数解析器,用于解析请求中的参数并传递给控制器方法。:通过configureViewResolvers方法可以配置视图解析器,用于将控制器返回的逻辑视图名称解析为实际的视图对象。

2024-03-04 10:23:51 990

原创 笔记:实际遇到的问题

<hr></div></div>

2024-03-04 10:21:55 941

原创 springboot运维

1.通过启动参数加载配置文件(无需书写配置文件拓展名)启动后端口号是84。2.通过启动参数加载指定文件路径下的配置文件3.通过启动参数加载指定文件路径下的配置文件时可以加载多个配置ebank-server.yml中只有一个参数就是端口号是85,运行后端口号为85。即加载多个配置,最终执行最后一个配置(覆盖思想,执行最后一个)。

2024-03-04 10:12:24 758

原创 笔记:若依防止表单重复提交

【代码】笔记:若依防止表单重复提交。

2024-03-04 10:00:09 303

原创 笔记:若依的时间工具类

因为里面的方法都是静态的,所以使用的时候直接DateUtils.xxx()就可以了。

2024-03-04 09:48:03 469

原创 笔记:若依的导入导出工具类ExcelUtil和实现方法

文章目录导入导出ExcelUtil工具类@Excel注解实体类属性上用注解具体实现方法 导出导入导入导出ExcelUtil工具类(工具类中很多方法需要引用其他工具类,用不到可根据情况注释掉方法)package com.ruoyi.common.utils.poi;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import ja

2024-03-04 09:46:25 1547

原创 笔记:若依项目的多数据源@DataSource

主要思想:醒目根据注解里写的值,进行判断获取到不同的dataSource对象,获取到不同的对象,那么就可以操作不同的数据库了。

2024-03-01 22:36:52 1138

原创 笔记:若依的@Anonymous注解

*** 匿名访问不鉴权注解* 也就是说不管是类还是方法上面,只要有这个注解,不需要登录就能访问*/

2024-03-01 22:33:06 1185

原创 sql操作工具类防止sql注入

防止sql注入,因为可能会在F12控制台那里,恶意拼接一些参数,所以要防止注入绕后。比如:在list分页查询的时候,根据某个属性进行排序,先检查字符,防止注入绕后。

2024-03-01 22:28:49 233

原创 笔记:若依时间工具类和@InitBinder注解

比如实体类A和B,都有属性a和b,这时候前端只传两个参数过来a=1,b=2,这时候两个实体类中a和b都会赋值成功;但是这样肯定不行,因为虽然属性名一样,但是在不同的实体类里面,我们想要区分,该怎么实现?这个时候再访问接口,前端传的值如果是teacher.name=lisi、teacher.age=30就是teacher的name和age,student的name和age就是null。有一个接口,参数是两个实体类,这两个实体类都有属性a和b,那么前端给这个接口传值的时候,谁会接收?1.绑定同属性多对象。

2024-03-01 22:27:26 294

原创 笔记:若依异步任务管理器去记录日志

*** 自定义操作日志记录注解/*** 模块/*** 功能/*** 操作人类别/*** 是否保存请求的参数/*** 自定义操作日志记录注解/*** 模块/*** 功能/*** 操作人类别/*** 是否保存请求的参数/*** 自定义操作日志记录注解/*** 模块/*** 功能/*** 操作人类别/*** 是否保存请求的参数/*** 自定义操作日志记录注解/*** 模块/*** 功能。

2024-03-01 22:24:42 2180

原创 若依项目中使用redis做缓存,引入工具类

【代码】若依项目中使用redis做缓存,引入工具类。

2024-03-01 17:55:12 839

原创 AES加密算法工具类和MD5工具类

【代码】AES加密算法工具类和MD5工具类。

2024-03-01 17:48:31 349

原创 spring配置拦截器

1.创建拦截器类实现HandlerInterceptor接口2.配置拦截器3.测试拦截器的拦截效果例子:创建拦截器MyInterceptor1System.out.println("目标资源执行......");//在目标方法之前执行//返回true代表放行,后续的操作可以进行,返回false代表不放行,后续的操作都不能执行//在目标方法执行之后,视图对象返回之前执行//在整个流程都执行完毕后执行--配置拦截器-->--对哪些资源执行拦截操作-->

2024-03-01 17:44:31 951

原创 SpringSecurity笔记

​ 我们需要自定义一个过滤器,这个过滤器会去获取请求头中的token,对token进行解析取出其中的userid。​ 使用userid去redis中获取对应的LoginUser对象。​ 然后封装Authentication对象存入SecurityContextHolder@Component//继承OncePerRequestFilter 每次请求过滤器只会执行一次@Autowired@Override//获取tokenif (!//放行return;//解析token。

2024-03-01 16:38:25 839

原创 RabbitMQ笔记

文章目录四大核心概念下载安装erlang和rabbitMQHellowWorld创建开发环境生产者代码消费者代码工作队列实现工作队列消息应答自动应答手动应答(建议)持久化队列持久化消息持久化不公平分发预取值发布确认单个发布确认批量发布确认异步发布确认交换机FanoutDirectTopics死信队列消息TTL过期队列达到最大长度消息被拒绝延迟队列整合springboot队列实现队列优化插件实现延迟队列发布确认高级回退消息四大核心概念下载安装erlang和rabbitMQ1.安装Erlang:ht

2024-03-01 13:56:29 538

原创 ActiveMQ笔记

从最初的AMQ Message Store 方案到 ActiveMQ V4版本推出的High performance journal (高性能事务)附件,并且同步推出了关系型数据库的存储方案, ActiveMQ 5.3 版本有推出了KahaDB 的支持,(也是5.4之后的默认持久化方案),后来ActiveMQ 从5.8开始支持LevelDB ,现在5.9 提供了 Zookeeper + LevelDB 的集群化方案。在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。

2024-03-01 10:27:29 828

原创 ElasticSearch入门和环境部署

Elaticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎, 是整个 ElasticStack 技术栈的核心。启动ES:进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务。注意: 9300 端口为 Elasticsearch 集群间组件的通信端口, 9200 端口为浏览器访问的 http协议 RESTful 端口。打开浏览器,输入地址:,测试返回结果。

2024-02-29 17:48:40 743

原创 SQL优化 索引、查询截取分析、锁

这通常比ALL快,因为索引文件通常比数据文件小(也就是说虽然all和Index都是读全表,但index是从索引中读取的,而all是从硬盘中读的)。(显示使用到的条件查询,如果是常量就为const)显示索引的哪一列被使用了,如果可能的话,是一个常数。更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。对MyISAM表的写操作〈加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

2024-02-29 16:50:56 881

原创 Redis集群搭建

Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。例子:模拟六台服务器三主三从,这个用6379,6380,6381,6389,6390,6391端口。

2024-02-29 16:21:23 195

原创 Nginx笔记

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

2024-02-29 16:18:06 272

原创 SpringCache框架,注解

SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。

2024-02-29 15:13:00 331

原创 Git分布式版本控制工具

是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。Git中的标签,指的是某个分支某个特定时间点的状态。A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。

2024-02-29 13:57:39 863

原创 Vue笔记

用来减少 Vue 实例对象中代码量,日后在使用 Vue 开发过程中,可以根据不同业务功能将页面中划分不同的多个组件,然后由多个组件去完成整个页面的布局,便于日后使用 Vue 进行开发时页面管理,方便开发人员维护。v-show:用于控制页面中某个标签元素是否展示,底层通过控制元素的display属性来进行标签的显示和不显示控制。1.使用v-text取值会将标签中原有的数据覆盖,使用插值表达式的形式不会覆盖标签原有的数据。v-bind:用来绑定 标签的属性 从而通过 vue 动态修改标签的属性。

2024-02-29 12:04:17 502

原创 电脑同时配置两个Tomcat

set CATALINA_TMPDIR=tomcat的路径\temp。set CATALINA_HOME=tomcat的路径。set CATALINA_HOME=tomcat的路径。set CATALINA_BASE=tomcat的路径。set CATALINA_HOME=tomcat的路径。set CATALINA_BASE=tomcat的路径。set CATALINA_HOME=tomcat的路径。从windows服务中移除 tomcat服务。1.进入tomcat/bin 目录,

2024-02-29 11:54:12 302

原创 SpringBoot Admin监控

为Metrics端点添加自定义指标@Servicecounter = meterRegistry.counter("用户付费操作次数:");@Override自定义端点@Component//调用业务操作,获取支付相关信息结果,最终return出去。

2024-02-29 11:52:14 187

原创 springboot整合第三方技术:消息

消息发送方:生产者。消息接收方:消费者。企业级应用中广泛使用的三种传递技术:JMS、AMQP、MQTT。JMS(Java Message Service):一个规范,等同于JDBC规范,。JMS消息模型:peer-2-peer:点对点模型,消息发送到一个队列中,队列保存消息。队列的消息只能被一个消费者消费,或超时。:发布订阅模型,消息可以被多个消费者消费,生产者和消费者完全独立,不需要感知对方的存在。JMS消息种类:TextMessage、MapMessage、

2024-02-29 11:33:27 894

原创 springboot整合第三方技术:任务,邮件

SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议。IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议。触发器(Trigger):用于描述触发工作的规则,通常使用cron表达式定义调度规则。调度器(Scheduler):描述了工作明细与触发器的对应关系。工作明细(JobDetail):用于描述定时工作相关的信息。工作(Job):用于定义具体执行的工作。1.开启定时任务功能。

2024-02-29 11:24:55 272

原创 springboot整合第三方技术:缓存

SpringBoot提供的缓存技术除了提供默认的缓存方案,还可以对其他缓存技术进行整合,统一接口,方便缓存技术的开发与管理:Generic、JCache、Hazelcast、Infinispan、Couchbase、Caffeine、提供controller,传入手机号与验证码,业务层通过手机号从缓存中读取验证码与输入验证码进行比对,返回比对结果。j2cache是一个缓存整合框架,可以提供缓存的整合方案,使各种缓存搭配使用,自身不提供缓存功能。1.加入j2cache坐标,加入整合缓存的坐标。

2024-02-29 11:21:17 900

原创 springboot开发

Rollback,如果想在测试用例中提交事务,可以通过@Rollback注解设置,@Rollback(true)就是回滚,不提交事务;@Transactional和@SpringBootTest搭配着使用,首先它是个测试类,然后执行的操作不想提交,就使用@Transactional进行回滚,数据库中没有添加多出来数据。@EnableConfigurationProperties注解可以将使用@ConfigurationProperties注解对应的类加入Spring容器。绑定属性支持属性名宽松绑定。

2024-02-28 17:56:23 910

原创 springboot整合案例SSMP

分页操作是在MyBatisPlus的常规操作基础上增强得到,内部是动态的拼写SQL语句,因此需要增强对应的功能,使用MyBatisPlus拦截器实现。Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发,lombok版本由SpringBoot提供,无需指定版本。删除功能维护(如果一页10条数据,删除第11条数据,当前页码是第二页,但是最大页码是1页)运行结果:CRUD的结果都是JSON格式,flag是操作成功与否,data是数据。

2024-02-28 16:18:50 820

原创 springboot入门

使用@ConfigurationProperties注解绑定配置信息到封装类中封装类需要定义为Spring管理的bean,否则无法进行属性注入application.yml中添加:#创建类,用于封装下面的数据#由spring帮我们去加载数据到对象中,一定要告诉spring加载这组信息#使用时从spring中直接获取信息使用#创建类,用于封装下面的数据#由spring帮我们去加载数据到对象中,一定要告诉spring加载这组信息#使用时从spring中直接获取信息使用。

2024-02-28 15:27:31 970

java相关的面试题(集合+springboot+mybatis+mysql+redis+jvm+多线程+设计模式)

Java方面最常用的面试题,需要自取。 包括:Java集合、springboot、mybatis、MySQL、Redis、JVM、Java异常、多线程、设计模式、Java并发编程、Tomcat优化 希望这份面试题能帮助到陌生的你,祝愿早日找到一份心仪的工作~

2024-02-28

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

TA关注的人

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