博客
Seata全局事务隔离性
在数据库本地事务隔离级别 读已提交(Read Committed) 或以上的基础上,Seata(AT 模式)的默认全局隔离级别是 读未提交(Read Uncommitted) 。如果应用在特定场景下,必需要求全局的 读已提交 ,目前 Seata 的方式是通过 SELECT FOR UPDATE 语句
Java 建造者模式
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离
Docker 安装 MongoDB
docker pull mongo
docker run -itd --name mongo -p 27017:27017 mongo --auth
-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mo
Dubbo服务降级-Mock
模块A依赖模块B, 当模块B无法启动或无法提供服务时, 需要进行服务降级 @Reference(version = "${bs.service.version}", timeout = 500000, retries = 0, check = false, mock = "fail:com.code
Java操作Redis的常见误区
不能使用 keys * 命令不能在set中存放大量数据
Java 单例模式
双重校验懒汉式单例public class Singleton {
//1. 避免jvm指令重排 由于JVM具有指令重排的特性,执行顺序有可能变成 1-3-2。指令重排在单线程下不会出现问题,但是在多线程下会导致一个线程获得一个未初始化的实例。例如:线程T1执行了1和3,此时T2调用 ge
Java 工厂模式
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
Java 模板模式
public abstract class Template {
public final void templ() {
System.out.println("开始");
code();
System.out.println("结束");
}
public abstract v
Java 装饰者模式
接口Printerpublic interface Printer {
void start();
void print();
void stop();
}
实现类 HPPrinter
public class HPPrinter implements Printer {
Java Proxy.newProxyInstance动态代理
定义接口public interface Student {
void buy();
String talk();
}
实现类public class Lisi implements Student {
@Override
public void buy() {
System.ou
Spring自定义注解加载和使用
Spring在扫描类信息的使用只会判断被@Component注解的类所以任何自定义的注解只要带上@Component(当然还要有String value() default "";的方法,因为Spring的Bean都是有beanName唯一标示的)都可以被Spring扫描到,并注入容器内例: Spr
SpringDataJPA + SQL Server 分页查询返回page0_字段
在配置了方言后, 使用 jpa 的分页查询(Pageable)时, sql返回的字段都变成了这样{
"page1_": "2020121800040029834",
"page2_": 19.25,
"page3_": null,
"page0_": "2020-12
SpringBoot连接Redis服务出现Command timed out
docker 部署的redis一直出现超时docker pull redis
网上的都说要设置这个值spring.redis.timeout=50000
然而实际使用过程中仍然超时查看redis 服务端配置-bash# cat redis.conf | grep tcp-k
tcp-keepali
SpringBoot RedisTemplate 操作不同的库
其他开发解决不了redis切换库, 于是通过消息队列, 让其他项目去操作对应的库, 太奇葩了, PM居然不管???@Bean("redisTemplateForDb6")
public RedisTemplate<Object, Object> redisTemplate(RedisConnecti
Jenkins + Gitee 持续集成
接上文/article/537098261463302145 Jenkins安装JDK安装将jdk-8u171-linux-x64.rpm(oracle官网下载)上传至服务器执行安装命令rpm -ivh jdk-8u171-linux‐x64.rpm
RPM方式安装JDK,其根目录为:/usr/ja
Redis实现分布式锁
boolean redisRes = stringRedisTemplate.opsForValue().setIfAbsent(key, value)
原子操作当key不存在, 存入value,返回true当key存在, 不进行操作, 返回false当处于redis事务中 , 返回null
SQL SERVER timestamp类型 不能使用java.sql.Timestamp类型对应
实际应该使用 CONVERT ( bigint, addTimestamp)进行转换, 然后用long接值
JPA + SQL SERVER 列名无效
用实体类接返回结果报列名无效.暂时只能用List<Map<String, Object>>
Maven插件自动构建项目镜像
搭建docker私有仓库docker pull registry
启动容器docker run ‐di --name=registry -p 5000:5000 registry
打开浏览器 输入地址http://localhost:5000/v2/_catalog看到{"repositories"
SpringCloud (一) : 创建工程
在idea中, 创建maven工程blog-parent引入基本依赖<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o