10 zzhongcy

尚未进行身份认证

因为站在了巨人的肩上,所以我看得更远。 当你发现自己的才华撑不起野心时,就请安静下来学习吧

等级
TA的排名 3k+

SpringBoot2异常处理回滚事务详解(自动回滚/手动回滚/部分回滚)

1问题背景有时候,我们总是需要再SpringBoot2中对一个Service方法做一个完整的事务,发现异常时,进行回滚,然后又能返回错误信息。2@Transactional事务实现机制在应用系统调用声明了@Transactional的目标方法时,SpringFramework默认使用AOP代理,在代码运行时生成一个代理对象,根据@Transac...

2019-11-04 11:17:27

springBoot 中文乱码问题分析,即统一utf8编码

最近在使用sprintBoot,发现中文乱码问题,所以这里记录一下。乱码问题,很多问题都要从数据库、应用程序、客户端三个部分进行分析。1、数据库编码设置配置my.cnf:--在[mysqld]标签下加上三行default-character-set=utf8character_set_server=utf8lower_case_table_names=1//...

2019-10-24 14:32:31

JSON.parseObject解析@JsonProperty注解失败

jackson的maven依赖<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.3</version>&l...

2019-10-22 17:09:08

Spring的@Scheduled任务调度

一.定时任务实现方式1.1定时任务实现方式Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显...

2019-10-22 11:01:02

mybatis foreach Collection的List、Array、Map

mybatis的foreach官方文档解释:对一个集合进行遍历,通常是在构建IN条件语句的时候使用。例如<selectid="selectPostIn"resultType="domain.blog.Post">SELECT*FROMPOSTPWHEREIDin<foreachitem="item"index="index"coll...

2019-10-21 10:36:25

springboot2.0 序列化方式详解, @Cacheable乱码,以及GenericToStringSerializer VS Jackson2JsonRedisSerializer

最近研究(GenericToStringSerializerVSJackson2JsonRedisSerializer)的对比,网上查了查资料,这里记录一下,有一些修改。前言sprintboot1.x.x的版本时默认使用的jedis客户端,现在是sprintboot2.x.x版本默认使用的lettuce客户端,两种客户端的区别如下:Jedis和Lettuce都...

2019-10-17 09:46:11

springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)

前言在实际项目开发过程中,相信很多人都有用到过redis这个NoSQL,这篇文章就详细讲讲springboot如何整合redisRedis简介简单介绍下Redis:Redis是一个开源的使用ANSIC语言编写,支持网络,可基于内存也可持久化的日志型,Key-Value数据库,并提供了多种语言的API,相比Memcached它支持存储的类型相对更多(字符,哈希...

2019-10-16 13:44:07

绕过 Java 编译器检查,在任何地方抛出受检异常

1Java异常简介众所周知,Java的所有异常都派生自Throwable类,在继承结构上,从Throwable派生出了Error和Exception两大类。其中,Error表示系统级别的严重程序错误,一般由JVM抛出,我们也不应该捕获这类异常,用户自定义的异常一般都派生自Exception类。从是否被编译器强制检查一点,异常又可...

2019-10-15 16:24:23

sprintboot redis异常处理CacheErrorHandler详解以及性能问题分析

最近考虑redis异常处理,网上很多资料都是实现了CacheErrorHandler进行处理的,但是忽略了一个性能问题,下面介绍一下。redis配置其他配置忽略,只关心下面配置:#连接超时时间(毫秒)spring.redis.timeout=400CacheErrorHandler实现如下:https://www.cnblogs.com/zhizhao/p/1015128...

2019-10-14 18:10:53

sprintboot @RestController vs @Controller详解

Controller返回一个页面单独使用@Controller不加@ResponseBody的话一般使用在要返回一个视图的情况,这种情况属于比较传统的SpringMVC的应用,对应于前后端不分离的情况。@RestController返回JSON或XML形式数据但@RestController只返回对象,对象数据直接以JSON或XML形式写入HTTP响...

2019-10-14 16:43:32

Nginx lua设置Cookie,及学习Cookie

网上看到这篇文章,很喜欢这种分析思路,这里学习记录一下。最近小了解了下cookie.以前觉得cookie无非就是一连串键值对,在深入了解之后发现远没自己想的那么简单,自己果真太肤浅了….好吧,这里主要探讨一下以下几个问题:如何正确设置cookie cookie的作用域以及超时时间 第一方cookie以及第三方cookie为了获得简单直观的感受,这里我们使用以下工具进行...

2019-10-11 14:06:21

springboot 过滤器Filter vs 拦截器Interceptor 详解

1前言最近接触到了过滤器和拦截器,网上查了查资料,这里记录一下,这篇文章就来仔细剖析下过滤器和拦截器的区别与联系。2拦截器与过滤器之间的区别从上面对拦截器与过滤器的描述来看,它俩是非常相似的,都能对客户端发来的请求进行处理,它们的区别如下:作用域不同 过滤器依赖于servlet容器,只能在servlet容器,web环境下使用 拦截器依赖于spring容器,...

2019-10-11 11:28:48

Spring AOP中定义切点PointCut详解

1、AOP是什么?软件工程有一个基本原则叫做“关注点分离”(ConcernSeparation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题。这年头互联网也天天强调要专注嘛!这其实也是一种“分治”或者“分类”的思想,人解决复杂问题的能力是有限的,所以为了控制复杂性,我们解决问题时通常都要对问题进行拆解,拆解的同时建立各部分之间...

2019-10-10 16:16:40

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(LockContention) Java进程消耗CPU过高 ...... 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解...

2019-10-09 16:16:36

Java GC原理和性能调优实践

前言本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspotjdk1.8,学习之后你将了解如何对生产系统出现的GC问题进行排查解决。正文本文的内容主要如下:GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等 CMS原理及调优。 G1原理及调优 GC问题排查和解决思路1.GC基础原理1.1.GC调...

2019-10-09 09:32:22

记一次踩坑|空table []应该编码为json数组[ ]还是json对象{}

首先大家请看这段源码:--http://www.kyne.com.au/~mark/software/lua-cjson.php--version:2.1devellocaljson=require("cjson")ngx.say("value-->",json.encode({dogs={}}))输出结果value-->{"dogs"...

2019-09-27 09:49:28

Java应用的GC优化

最近看到这篇GC优化,自己标记一下,这里记录学习!Java应用的GC优化当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用...

2019-09-26 11:23:21

Nginx https性能优化

1、影响HTTPS速度的主要原因:众周所知网站启用https后,会加剧服务器的负担。传统的http使用TCP三次握手建立连接,而SSL和TLS在这个基础上还需要9个握手包,所以这个负担显而易见。1.1密钥交换算法常见的密钥交换算法有RSA,ECDHE,DH,DHE等算法。它们的特性如下:RSA:算法实现简单,诞生于1977年,历史悠久,经过了长时间的破解测试,...

2019-09-18 15:21:27

Nginx favicon.ico访问配置,以及忽略“GET /favicon.ico 403 404”错误

favicon.ico文件是浏览器收藏网址时显示的图标,当第一次访问页面时,浏览器会自动发起请求获取页面的favicon.ico文件。当/favicon.ico文件不存在时,服务器会记录404日志。1、favicon.ico访问配置1.1nginx配置favicon.ico文件本地路径如果需要获取favicon.ico,在根目录下存放一个favicon.ico...

2019-09-17 14:47:47

java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch,以及startsWith匹配

说明count方法,跟List接口的size一样,返回的都是这个集合流的元素的长度,不同的是,流是集合的一个高级工厂,中间操作是工厂里的每一道工序,我们对这个流操作完成后,可以进行元素的数量的和;anyMatch表示,判断的条件里,任意一个元素成功,返回trueallMatch表示,判断条件里的元素,所有的都是,返回truenoneMatch跟allMatch相反,判断条件里的元素...

2019-09-17 13:37:28

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。