java
文章平均质量分 80
coderyeah
Where there is a will, there is a way.
展开
-
设计模式之工厂方法模式
工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。工厂方法模式又称为工厂模式,它属于类创建型模式。在工厂方法模式中,原创 2023-01-10 09:55:13 · 353 阅读 · 0 评论 -
一篇带你了解什么是事务及其原理
指作为单个逻辑工作单元(Service方法)执行的一系列操作(数据库操作),要么全部执行,要么全部不执行。事务可以看做是一组任务,通常对应了一个业务方法,这些任务要么全部成功,要么全部失败。本地事务有这么几个特征:一次事务只连接一个支持事务的数据库(一般来说都是关系型数据库)事务的执行结果保证[ACID]会用到数据库锁事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID,缺一不可。原创 2022-12-11 16:47:13 · 1199 阅读 · 0 评论 -
使用minio进行文件存储
二. 启动一个miniio容器账号是minio; 密码是minio123端口9090或9999(确保在服务器放行相关端口即可访问)点击 create a Bucket 创建一个bucket(桶), 这里的Bucket 我们可以理解为文件存储的目录输入 bucket name ,点击create bucket 。可以通过 upload 上传文件到bucket中。测试类(需要输入自己的账号密码和IP)五. 配置权限如果我们需要我们上传的文件可以被匿名用户访问,那么需要添加访问权限:找到文件存储原创 2022-11-18 10:33:59 · 5727 阅读 · 0 评论 -
使用SpringBoot的定时任务发布秒杀活动到redis
【代码】使用SpringBoot的定时任务发布秒杀活动到redis。原创 2022-11-10 14:19:23 · 455 阅读 · 0 评论 -
Springboot使用Quartz定时任务删除redis中的物品
/缓存的配置 @Configuration public class RedisConfig {//使用JSON进行序列化 @Bean public RedisTemplate < Object , Object > redisTemplate() {//JSON格式序列化 GenericFastJsonRedisSerializer serializer = new GenericFastJsonRedisSerializer();原创 2022-11-06 14:22:20 · 216 阅读 · 0 评论 -
在maven中使用RocketMQ发布消息和消费消息
然后事务发送方执行本地事务,并发送commit给MQ,如果是执行失败就会发送rollback给MQ;MQ搜到commit指令,代表本地事务执行成功,之前的half消息就会成为可以被commit提交的消。如果事务参与方并没有发送commit或者rollback指令MQ,MQ回调用事务发送方的回到方法来检。首先事务发起方:往MQ中发送一个事务消息-half半消息(准备消息),该消息不可被消费;异步消息是指发送的消息到MQ队列不用等待其返回结果,继续发送其它消息,效率快。同步发送是指发送的消息需要。原创 2022-11-03 10:59:08 · 2176 阅读 · 0 评论 -
怎么实现对登录用户访问权限的拦截
*** 自定义注解}原创 2022-10-26 12:51:38 · 399 阅读 · 0 评论 -
分布式事务的实现方案和redis缓存配置
针对于单数据库的事务我们叫着本地事务/传统事务,在分布式环境中一个请求可能涉及到多个数据库的写操作(多数据源),要保证多数据源的一致性必须用到分布式事务。原创 2022-10-23 22:14:08 · 1579 阅读 · 0 评论 -
springboot项目中如何使用全局异常处理和自定义业务异常
统一捕获异常,使用AOP的思想,解决在controller中大量try-catch重复代码。: 贴在类上,的增强,同时可以在controller执行前后做一些额外逻辑。@ExceptionHandler(异常类.class):贴在方法上,可捕获指定类型的异常。/***/ // 自定义业务异常 @EqualsAndHashCode(callSuper = true) @Data public class BusinessException extends RuntimeException {原创 2022-10-23 09:31:00 · 175 阅读 · 0 评论 -
如何使用短信验证码完成注册功能
短信验证,只有三大运营商具有短信发送的能力。要发送短信只有找三大运营,或者中间商。简单说就是要找第三方的短信平台。常见的有阿里云,京东智联云,乐讯通等等非常多。举例使用网建短信通:http://www.smschinese.cn/发送短信工具类(官网也有相应代码可参考)原创 2022-10-20 09:32:06 · 443 阅读 · 0 评论 -
java面试题大全必备神器
哈希冲突,也叫哈希碰撞,指的是两个不同的值,计算出了相同的hash,也就是两个不同的数据计算出同一个下标,通常解决方案有:拉链法,把哈希碰撞的元素指向一个链表开放寻址法,把产生冲突的哈希值作为值,再进行哈希运算,直到不冲突再散列法,就是换一种哈希算法重来一次建立公共溢出区,把哈希表分为基本表和溢出表,将产生哈希冲突的元素移到溢出表。原创 2022-10-20 09:28:17 · 493 阅读 · 0 评论 -
Spring的介绍及应用
Spring是一个轻量级开源的控制反转(IOC)和面向切面编程(AOP)的容器框架。(1) 轻量级:相对于重量级(框架设计比较繁琐,配置较多,例如EJB(tomcat不支持),现在基本不用了)而言,开发使用都比较简单,功能强大;(2)IOC(Inverse of control - 控制反转):将创建对象的权利和依赖关系维护(字段赋值)交给Spring容器(不再使用以前new关键字创建对象)。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被Spring控制,所以这叫控制反转;(3)原创 2022-10-20 09:25:24 · 172 阅读 · 0 评论 -
servlet和jsp的原理和应用介绍
Servletjava服务器端(动态)网页,JSP就是Java中用来做动态网页的技术;JSP底层就是一个Servlet,在执行的时候先转成Servlet然后同样要经历Servlet的生命周期;原创 2022-10-20 09:23:45 · 349 阅读 · 0 评论 -
如何使用JDBC连接MYSQL数据库
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。1.prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率,不用一直更改SQL语句,只需要修改变量就行了,还可以有效的防止SQL注入攻击。在对数据库只执行一次性存取,PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。 隔离性:在并发的环境中,操作相同的数据是每一个事物都是独立的,相互不会影响。原创 2022-10-20 09:10:54 · 1146 阅读 · 0 评论 -
mybatis的介绍和使用
MyBatis是一个ORM的数据库持久化框架;Mybatis底层还是原生的JDBC代码,对JDBC代码的封装。ORM:对象关系映射(Object Relational Mapping,简称ORM):是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术;ORM原理:以一定的映射方式,把实体模型和数据库关系进行映射;ORM框架启动时加载这些映射和数据库配置文件连接数据库;ORM通过对最原生jdbc的封装,并提供更加便利的操作API;原创 2022-10-20 09:06:08 · 189 阅读 · 0 评论 -
springboot项目中如何使用全局异常处理和自定义业务异常
springboot项目中如何使用全局异常处理和自定义业务异常一. 统一捕获异常二. 使用枚举封装返回的异常信息三. 自定义业务异常全局异常代码:包含三种全局异常处理统一返回结果类四.JSR303校验导入依赖Bean Validation 中内置的 constraint在参数实体类的字段上注解开启校验五.自定义校验注解定义校验注解定义校验器使用校验注解/**原创 2022-10-20 09:01:37 · 109 阅读 · 0 评论 -
SpringBoot的基础使用
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring配置和启动的。原创 2022-10-19 10:02:13 · 106 阅读 · 0 评论 -
SpringCloud-Gataway网关的使用
SpringCloud-Gataway网关的使用原创 2022-10-19 09:57:24 · 781 阅读 · 1 评论 -
RabbitMQ的介绍和使用
RabbitMQ的介绍和使用原创 2022-10-19 09:53:06 · 103 阅读 · 0 评论 -
关于Lucene和ES全文搜索引擎的介绍和使用
关于Lucene和ES全文搜索引擎的介绍和使用原创 2022-10-19 09:49:39 · 3793 阅读 · 0 评论 -
菜单权限和按钮权限的实现,以及JWT的使用
菜单权限和按钮权限的实现,以及JWT的使用原创 2022-10-19 09:47:08 · 1840 阅读 · 0 评论 -
javase基础知识笔记
javase基础知识笔记原创 2022-10-19 09:42:57 · 174 阅读 · 0 评论 -
java基础笔记2
java基础知识笔记详解原创 2022-10-19 09:41:45 · 168 阅读 · 0 评论 -
如何使用dom4j解析XML
dom4j解析XML原创 2022-10-19 09:37:27 · 109 阅读 · 0 评论