博客

Java 单例模式

双重校验懒汉式单例public class Singleton { //1. 避免jvm指令重排 由于JVM具有指令重排的特性,执行顺序有可能变成 1-3-2。指令重排在单线程下不会出现问题,但是在多线程下会导致一个线程获得一个未初始化的实例。例如:线程T1执行了1和3,此时T2调用 ge
2021-01-06

Java 工厂模式

public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); } }
2021-01-02

Java 模板模式

public abstract class Template { public final void templ() { System.out.println("开始"); code(); System.out.println("结束"); } public abstract v
2021-01-02

Java 装饰者模式

接口Printerpublic interface Printer { void start(); void print(); void stop(); } 实现类 HPPrinter public class HPPrinter implements Printer {
2021-01-02
Java Proxy.newProxyInstance动态代理

Java Proxy.newProxyInstance动态代理

定义接口public interface Student { void buy(); String talk(); } 实现类public class Lisi implements Student { @Override public void buy() { System.ou
2021-01-02

Spring自定义注解加载和使用

Spring在扫描类信息的使用只会判断被@Component注解的类所以任何自定义的注解只要带上@Component(当然还要有String value() default "";的方法,因为Spring的Bean都是有beanName唯一标示的)都可以被Spring扫描到,并注入容器内例: Spr
2020-12-28

SpringDataJPA + SQL Server 分页查询返回page0_字段

在配置了方言后, 使用 jpa 的分页查询(Pageable)时, sql返回的字段都变成了这样{ "page1_": "2020121800040029834", "page2_": 19.25, "page3_": null, "page0_": "2020-12
2020-12-18

SpringBoot连接Redis服务出现Command timed out

docker 部署的redis一直出现超时docker pull redis 网上的都说要设置这个值spring.redis.timeout=50000 然而实际使用过程中仍然超时查看redis 服务端配置-bash# cat redis.conf | grep tcp-k tcp-keepali
2020-12-14

SpringBoot RedisTemplate 操作不同的库

其他开发解决不了redis切换库, 于是通过消息队列, 让其他项目去操作对应的库, 太奇葩了, PM居然不管???@Bean("redisTemplateForDb6") public RedisTemplate<Object, Object> redisTemplate(RedisConnecti
2020-12-10

Jenkins + Gitee 持续集成

接上文/article/537098261463302145 Jenkins安装JDK安装将jdk-8u171-linux-x64.rpm(oracle官网下载)上传至服务器执行安装命令rpm -ivh jdk-8u171-linux‐x64.rpm RPM方式安装JDK,其根目录为:/usr/ja
2020-12-04

Redis实现分布式锁

boolean redisRes = stringRedisTemplate.opsForValue().setIfAbsent(key, value) 原子操作当key不存在, 存入value,返回true当key存在, 不进行操作, 返回false当处于redis事务中 , 返回null
2020-11-25

SQL SERVER timestamp类型 不能使用java.sql.Timestamp类型对应

实际应该使用 CONVERT ( bigint, addTimestamp)进行转换, 然后用long接值
2020-11-25
JPA + SQL SERVER 列名无效

JPA + SQL SERVER 列名无效

用实体类接返回结果报列名无效.暂时只能用List<Map<String, Object>>
2020-11-25

Maven插件自动构建项目镜像

搭建docker私有仓库docker pull registry 启动容器docker run ‐di --name=registry -p 5000:5000 registry 打开浏览器 输入地址http://localhost:5000/v2/_catalog看到{"repositories"
2020-11-22

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
2020-11-10

SpringCloud Bus 刷新不了配置

不要使用@Value("${config.test}") private String test; 改为使用@ConfigurationProperties(prefix = "config") @Component public class UserConfig{ private String
2020-11-09

Windows 创建软链接

比如将chrome的缓存从系统盘重定向到其他盘mklink /D sourcePath targetPath 示例mklink /D "C:\Users\root\AppData\Local\Google\Chrome\User Data\Default" D:\soft\chrome\Defaul
2020-11-04
Chrome翻译插件url指向国内站点

Chrome翻译插件url指向国内站点

安装google翻译插件找到安装路径将translate.google.com全部替换成translate.google.cn将文件夹复制出来加载已解压的拓展程序
2020-09-22

日志规范

日志中要打印参数错误示例 @GetMapping("/share_coupon") public ActionResult shareCoupon(Long couponSn) { //validate code try { retur
2020-09-17
AOP拦截controller方法注入参数 代替@RequestBody

AOP拦截controller方法注入参数 代替@RequestBody

效果如下加上@Pass放弃aop拦截注入,使用spring mvc的参数注入核心方法package com.github.aop; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxm
2020-09-16