自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【转载】Spring Boot 2.0 教程 | AOP 切面统一打印请求日志

本节中,您将学习如何在 Spring Boot 2.0 中使用 AOP 切面统一处理请求日志,打印进出参相关参数。一、先看看日志输出效果Spring Boot AOP 打印日志可以看到,每个对于每个请求,开始与结束一目了然,并且打印了以下参数:URL: 请求接口地址;HTTP Method: 请求的方法,是 POST, GET, 还是 DELETE 等;Class Method: 对应 Controller 的全路径以及调用的哪个方法;IP: 请求 IP 地址;Request Args:

2021-08-02 16:01:10 198

原创 redis分布式锁的实现和原理

1、简单版本命令:setnx key value对应RedisTemplate方法:setIfAbsent在指定的 key 不存在时,为 key 设置指定的值String lockKey = "key";//拿锁boolean result = stringRedisTemplate.opsForValue().setIfAbsent(lockKey,"value");if(!r...

2020-03-28 18:24:36 259

原创 spring-boot-starter 新增 jar 包的配置类加载方式

springboot相较于springMVC的一大优点就是基于约定优于配置的理念简化配置,并且提供给我们开箱即用的一些组件,例如spring-starter依赖。它内部引入相关组件的jar包,并且封装了一些默认配置。让我们在开发时能够专注于业务而不必过多的关注框架的配置。spring boot starter 加载配置类有两种方式。1、 引入jar包后全自动加载配置类2、 通过@Enable...

2020-02-14 18:45:09 1208 2

原创 java jar启动参数说明【双横杠和单横杠区别】

启动参数说明:双横杠【–】是springboot中特定的传参用法,不是java自带的,只有spring boot可以解析。对应解析到 java [-options] -jar jarfile [args…] 中的args数组参数,最终由SimpleCommandLineArgsParser类完成参数的解析。单横杠【-】是指定 java 虚拟机的启动参数...

2020-01-14 12:07:25 1391

原创 IDEA Gradle Wrapper 项目打包控制台输出中文乱码解决方案

问题描述IDEA Gradle 输出日志中文乱码,如图解决方案IDEA 2019 之前版本:File | Settings | Build, Execution, Deployment | Build Tools | GradleGradle VM options 添加以下参数:-Dfile.encoding=utf-8IDEA 2019 版本:IDEA 2019.3 新版没有上面...

2020-01-14 11:24:41 1133

原创 JAR包启动 控制台和文件 中文乱码解决

启动参数加上编码方式即可java -Dfile.encoding=UTF-8 -jar app.jar --server.port=9090

2020-01-14 11:19:02 2174 2

原创 spring-cloud-config feign 设置 header 请求头

最近在使用 feign-clien 的时候 需要设置请求头,遇到一些小问题,于是就度娘了一下说是按照下面方式设置:public interface XXService { @GetMapping("/xx") @Headers({"Content-Type: application/json","Accept: application/json"}) String s...

2020-01-01 20:03:04 1891

原创 JAVA静态加载顺序

1、父类优于子类2、静态优于非静态3、字段优于方法4、代码块优于构造方法5、构造方法优于普通方法父静态字段 --> 父静态代码块 --> 父静态方法子静态字段 --> 子静态代码块 --> 子静态方法父非静态字段 --> 父非静态代码块 --> 父构造函数 --> 父普通方法子非静态字段 --> 子非静...

2019-12-28 16:19:32 168

原创 FastJson下划线转驼峰

parse(字符串转对象)的时候 设置下划线转驼峰ParserConfig.getGlobalInstance().propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;JSON.parseObject(str, RespOrderDTO.class);toString(对象转字符串)的时候,设置下划线转驼峰Serialize...

2019-12-27 20:53:04 22136 4

原创 spring-boot json(jackson)属性命名策略、命名方式

单个字段命名单个字段可以采用@JsonProperty这个注解自定义@JsonProperty(“user_name”)单个类的命名策略设置单个类设置在需要的实体上添加@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)注解整个项目命名策略的设置通过properties设置(yml格式)spring:  jackso...

2019-12-22 12:45:19 3070

原创 手写HashMap

JAVA1.7 和 JAVA1.8中HashMap的主要区别1、数据结构不一样JAVA1.7 数组、链表JAVA1.8 数组、链表、红黑树2、put方式不一样在JAVA1.7的时候是直接加入到链头,比较简单粗暴在JAVA1.8中因为加入了红黑树,每一次PUT的时候必须要统计链表的长度,所以遍历后放到链尾。如果长度超过8,就要放到红黑树里面。所以JAVA1.7的put效率略高于1....

2019-11-29 12:01:56 86

原创 手写线程同步锁 ,CAS无锁算法

import lombok.AccessLevel;import lombok.Getter;import lombok.Setter;import lombok.extern.slf4j.Slf4j;import sun.misc.Unsafe;import java.lang.reflect.Field;import java.util.concurrent.Concurrent...

2019-11-21 16:30:44 262

原创 spring-data-jpa specification 复杂查询之 zuji-jpa

Zuji-JPA官方文档Zuji-JPA 是一个不用写sql的 Spring Data JPA 增强库,在 Spring Data JPA 的基础上简化开发,目的是让开发者不再去书写冗长的SQL,支持 入参定义式零逻辑 和 极简Java动态链式 两种方式来代替SQL。初衷由于spring data jpa 在复杂查询这块的短板,我基于specification 功能 开发出了为简化开发...

2019-10-26 17:35:21 1044

原创 spring-data-jpa Query by Example 动态条件查询

spring-data-jpa Query by Example 动态条件查询Example可以简化很多代码,但是功能有点弱,主要是对字符串匹配支持的比较好,对于非字符串的属性,只支持精确匹配,Example不支持范围查询(大于、小于、between等操作),这个就大大降低了Example的实用性。示例代码ExampleMatcher matcher = ExampleMatcher.mat...

2019-09-27 10:00:23 1695

原创 spring-data-jpa 实用特性和用法介绍

返回所有给定属性和值的记录Returns all having the given attribute.@Query("select p from Product p where p.attributes[?1] = ?2")List<Product> findByAttributeAndValue(String attribute, String value);List&l...

2019-09-25 14:17:37 1731

原创 spring-data-jpa封装 Specification 动态条件查询

使用演示动态条件查询 + or 嵌套条件+ 排序+ 分页public Page<User> list(ReqUserListDTO params) { Specification<User> spec = SpecificationUtils.where(e -> { if (!params.getUserType().name().equal...

2019-08-22 15:06:12 1999

空空如也

空空如也

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

TA关注的人

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