自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 mycat自定义分片算法

场景: 雪花ID 都是偶数,根据ID 取模,肯定只会落到偶数的表里,所以要自定义分片算法首先得去git 拉取一份mycat 服务代码新建一个算法类 把ID最后一个字符去掉再取模(把普通的取模算法做一点修改即可)package io.mycat.route.function;import io.mycat.config.model.rule.RuleAlgorithm;import java.math.BigInteger;/** * 自定义算法 字符串截取后取模, * 字符串截取倒数

2021-04-30 18:36:45 816 1

原创 Spirngboot 配置 mysql 多数据源

一 、不用druid 版本1.1依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependen

2020-11-12 15:11:37 321

原创 无网络版 修改docker openjdk 时区问题

首先找一台有网络的机器1、下拉jdk镜像docker pull openjdk:8-jre-alpine2、把镜像跑起来,进去做时区修改docker run -t -i openjdk:8-jre-alpine sh//添加时区apk add tzdata//下载好复制时区过去 就可以了cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedocker ps -a 可以看到刚跑起来的容器3、把容器打成镜像docker co

2020-10-13 18:39:08 527

原创 Springboot集成 quartz 并持久化到数据库中

依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependen

2020-09-25 15:55:09 434

原创 group by 取每组最大时间的值

表数据第一种:SELECT * FROM (SELECT * FROM clinic HAVING 1 ORDER BY created_time DESC) c GROUP BY c.unified_social_credit_code注意: having 1 不能少, 不知道原理, 或者 在 order by 后面加 limit 100000 也可以第二种SELECT * FROM clinic c WHERE c.id IN (SELECT SUBSTRING_INDEX(GRO

2020-09-01 12:27:04 1384

原创 Controller 接收Date,LocalDateTime,LocalDate

代码会影响到Jackson2ObjectMapperBuilderCustomizer 的序列化配置,不建议使用,可以看使用jackson序列化package com.hz.waste.config.mvc;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.core.JsonProcessingExcep

2020-07-03 16:27:47 793

原创 SpringBoot Controller 接收LocalDateTime

Controller 接收LocalDateTime 格式配置Jackson 序列化和反序列化import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeS

2020-07-03 16:19:43 2258

转载 ModelMapper 使用

参考链接modelMapper 使用

2020-07-02 10:41:21 384

原创 Mybatis-Plus 全局配置无效

依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency>配置文件修改mybatis-pl

2020-06-29 13:12:46 3595

原创 windows 安装redis

安装redis启动rediswin+R cmd 进入redis 目录redis-server.exe redis.windows.conf安装redis服务关闭redis启动窗口,新建cmd 进入redis目录redis-server --service-install redis.windows.conf --loglevel verbose

2020-06-21 13:37:00 107

原创 git 新仓库上传代码

命令初始化git init添加文件git add .提交git commit -m “first commit”关联仓库git remote add origin url //url 为仓库地址推送git push -u origin master如果 git push -u origin master 不成功,可以先git pull origin master --allow-unrelated-histories再git push -u origin

2020-06-19 12:16:54 160

原创 spring Mybatis拦截器,动态修改时间

例子:执行修改语句时,自动更新修改时间。(同理可得插入时,添加uuid、创建者)import java.lang.reflect.Field;import java.util.Date;import java.util.Map;import java.util.Properties;import org.apache.ibatis.executor.Executor;import org.apache.ibatis.mapping.MappedStatement;import org.ap

2020-06-14 14:17:28 1257

原创 springboot使用 redis控制接口访问时间间隔 自定义注解+spel+aop传入key、时间

controller 使用展示大概效果@Validated@RestController@RequestMapping(value = "/api/synchronization", produces = "application/json;charset=UTF-8")public class DataSynchronizationController { @Resource DataSynchronizationService dataSynchronizationServi

2020-06-10 18:28:53 598

原创 ctrl + z 误操作 E325: ATTENTION Found a swap file by the name

E325: ATTENTIONFound a swap file by the name ".app.js.swp" owned by: ubuntu dated: Wed Jun 3 15:30:15 2020 file name: ~ubuntu/docker-compose/service/xcweb/xcxm/app.js modified: no user name: ubuntu host name: VM-

2020-06-03 15:35:12 597

原创 git修改账号、密码、用户名、邮箱

修改账号密码首先打开控制面板>>>>凭据管理器>>>管理Windows凭据 删除码云或者github再拉取即可修改用户名和邮箱//查看用户名$ git config user.name//查看邮箱$ git config user.email//修改用户名,“”内容自己填写$ git config --global user.name "username"//修改邮箱$ git config --global user.email "

2020-06-03 14:18:32 801

原创 mysql 导入.sql 报错 here was error(s) while executing the queries

错误信息here was error(s) while executing the queries .The query and the error message has been logged at:C:\Users\52592\AppData\Roaming\SQLyog\sqlyog.err.Please click on "Open Error File..." to open the error file.修改 mysql 的my.ini文件本来是4M 改大点就可以了...

2020-05-29 17:34:37 14622 1

原创 JAVA 多种减库存方案的效率问题

这里只做了一个减库存的操作,没有生成订单之类的操作,操作数据库使用的是JPA。方案为别是:synchronized 同步方法乐观锁for update 数据库排他锁redis+lua方案一@RestControllerpublic class GoodsController { @Autowired GoodsDao goodsDao; @Tr...

2020-04-28 02:01:56 1462 2

原创 JAVA linux 常用命令

查出java 进程ps -ef|grep java查看xxxx端口的使用情况lsof -i:xxxx后台部署jar 包nohup java -jar xx.jar >temp.txt &

2020-04-27 16:28:28 171

原创 乐观锁减库存遇到的一些问题,一级缓存,隔离级别,库存少了

为了方便操作数据库用的是JPA第一个坑:JPA的一级缓存,导致查询死循环代码:@RestControllerpublic class GoodsController { @Autowired GoodsDao goodsDao; /** * 减库存 * @param id * @return */ @Tran...

2020-04-20 01:41:12 374

转载 Spring 事务 隔离级别 以及事务传播说明

事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离...

2020-04-08 16:01:45 164

转载 工厂模式+反射+配置文件

普通工厂模式interface fruit{ public abstract void eat(); } class Apple implements fruit{ public void eat(){ System.out.println("Apple"); } } class Orange implements...

2020-04-08 01:31:19 387

原创 cglib动态代理 减少redis 分布式锁的重复代码

使用cblib代理模式,从而减少完成分布式锁的重复代码。@Componentpublic class CGlibProxy implements MethodInterceptor { //代理方法 public Object createProxy(Object target){ //创建一个动态类对象 Enhancer enhancer = ...

2020-04-07 02:18:23 156

转载 redistemplate实现 setnx分布式锁

使用RedisTemplate的execute的回调方法,里面使用Setnx方法Setnx就是,如果没有这个key,那么就set一个key-value, 但是如果这个key已经存在,那么将不会再次设置,get出来的value还是最开始set进去的那个value.接下来我们用代码的形式展现:@Componentpublic class CommonRedisHelper { //...

2020-04-07 01:37:45 15012 4

转载 redis 缓存穿透、击穿、雪崩

缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间...

2020-04-07 01:01:48 80

转载 代理模式 JDK动态代理和CGLIB动态代理

1、 JDK动态代理(必须有接口)通过java.lang.reflect.Proxy类实现。动态代理就是为了解决静态代理不灵活的缺陷而产生的。静态代理是固定的,一旦确定了代码,如果委托类新增一个方法,而这个方法又需要增强,那么就必须在代理类里重写一个带增强的方法。而动态代理可以灵活替换代理方法,动态就是体现在这里。public interface TargetClass { voi...

2020-04-06 14:51:46 85

转载 redis 缓存更新机制

正文先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存。因此,接下来讨论的思路不依赖于给缓存设置过期时间这个方案。在这里,我们讨论三种更新策略:先更...

2020-04-05 14:11:53 3963

转载 java、mysql里的各种锁

InnoDB锁问题InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。背景知识1.事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的...

2020-04-01 00:16:21 388

原创 简单完成 SpringBoot监听redis订阅消息

首先注册监听者/** * 注册监听者 */@Configuration@EnableCachingpublic class SubscriberConfig { /** * 创建连接工厂 * * @return */ @Bean public RedisMessageListenerContainer containe...

2020-03-27 00:10:59 981

原创 判断线程是否全部结束

@Autowired ThreadPoolTaskExecutor threadPoolTaskExecutor; //判断线程是否全部执行结束 while (threadPoolTaskExecutor.getActiveCount() > 0){ try { Thread.sleep(100...

2020-03-25 19:09:31 1047

原创 配置多个线程池 注册bean 需要注意

主要有一个需要加上@Primary@Configuration@EnableAsyncpublic class ThreadPoolTaskConfig { @Bean @Primary public ThreadPoolTaskExecutor asyncServiceExecutor() { ThreadPoolTaskExecutor exe...

2020-03-25 19:05:28 1254 2

空空如也

空空如也

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

TA关注的人

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