Java
corey613
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
继承JsonSerializer<T>抽象类实现自定义序列化器
自定义序列化器需要继承 JsonSerializer 接口,泛型为需要被序列化的对象 重写 serialize() 方法在需要序列化的实体类上加上注解 @JsonSerialize(using = TemplateSerialize.class)指定序列化器public class GeoJsonPointSerializer extends JsonSerializer<GeoJsonPoint> { @Override public void serialize(G.原创 2020-12-23 15:48:55 · 1203 阅读 · 0 评论 -
spring batch简介与使用
spring batch简介与使用原创 2020-11-15 23:10:26 · 223 阅读 · 0 评论 -
性能调优
压测cpu压不上去压测cpu使用率50%左右,有大量iowait,使用arthas追踪慢方法,发现lettuce耗时很长,联系redis中间件组,解决服务端的问题,cpu可达到90A%查看慢方法命令:trace 类路径 类方法名示例:trace com.xxx.helper.impl.xxxxImpl useExchangeVoucher...原创 2020-10-30 15:39:52 · 192 阅读 · 0 评论 -
使用Hibernate Validator校验接口入参并使用自定义校验器
Hibernate Validator是用来做什么的?JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,用于对 Java Bean 中的字段的值进行验证。Hibernate Validator则是Hibdernate提供的一种对该规范的实现。——即Hibernate Validator是用来做参数校验。使用Hibernate Validator提供的注解进行参数校验引入依赖<dependency> <groupId>org原创 2020-10-17 14:22:33 · 530 阅读 · 1 评论 -
解决redis序列化java8 LocalDateTime错误的问题
报错信息Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator原创 2020-09-08 15:59:21 · 929 阅读 · 1 评论 -
一起来读Spring源码吧(四)循环依赖踩坑笔记
一起来读Spring源码吧(四)循环依赖踩坑笔记源起在开发过程中,遇到需要把方法调用改为异步的情况,本来以为简单得加个@Asyn在方法上就行了,没想到项目启动的时候报了如下的错误:Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'customerServiceImpl': Bean with name 'customerServi转载 2020-08-13 09:37:08 · 1145 阅读 · 0 评论 -
设计原则之美学习笔记——设计原则
单一职责1. 如何理解单一职责原则(SRP)?一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。2. 如何判断类的职责是否足够单一?不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性,比如,出现下面这些情况就有可能说明这类的设计不满足单一职责原则:类中的代码行数、函数或者属性过多;类依赖的其原创 2020-07-26 23:33:30 · 201 阅读 · 0 评论 -
JAVA优雅停机
JAVA优雅停机项目需要对SpringCLoud做一些优雅停机的改造,所以研究了下linux和java的停机方法,以及业界其他框架的做法。Kill 结束进程在 Linux上,kill 命令发送指定的信号到相应进程,不指定信号则默认发送 SIGTERM(15) 终止指定进程。如果无法终止,可以发送 SIGKILL(9) 来强制结束进程。kill 命令信号共有64个信号值,其中常用的是:2 (SIGINT:中断,Ctrl+C)。15 (SIGTERM:终止,默认值)。9 (SIGKILL原创 2020-07-20 09:10:38 · 933 阅读 · 0 评论 -
JAVA虚拟机类加载机制详解
JVM类加载机制在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的。提供了更大的灵活性,增加了更多的可能性(加载时稍微增加了一些性能开销)。类在虚拟机中的生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。加载查找并加载类的二进制数据。类的加载的最终产品是位于内存找那个的class对象验证文件格式验证元数据验证字节码验证符号引用验证准备为类的静态变量分配内存,并将其初始化为默认值。但时在到达初始化之前,类变量都没有初始化为真正的初始值。数原创 2020-06-30 11:20:36 · 370 阅读 · 0 评论 -
使用jEnv在Mac下安装管理多个JAVA版本
使用jEnv在Mac下安装管理多个JAVA版本最近在学习jvm,因为Oracle JDK中有些源码因为版权没有开源,比如sun.misc.Launcher类,而openJdk与其代码复用率在90%以上,所以安装openjdk来学习源码,使用jEnv来管理并切换多个Jdk环境。安装OpenJdk在mac环境下,我们使用homebrew方便的安装OpenJDK,brew的官方仓库中没有OpenJDK软件,在cask中有应用包。更新下载库:> brew tap AdoptOpenJDK/openj原创 2020-06-30 11:18:16 · 894 阅读 · 0 评论 -
深入理解Java SPI机制
深入理解Java SPI机制1.简介SPI(Service Provider Interface),是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如java.sql.Driver接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL和PostgreSQL都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。Java中SPI机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦*。SPI原创 2020-06-30 11:14:25 · 443 阅读 · 0 评论 -
List,List?,ListObject的区别
定义:声明中具有一个或者多个类型参数(type parameter)的类或者接口,就是泛型类或者接口。泛型类和接口统称为泛型(generic type)。每种泛型定义一组类型形参(formal type parameters),这些类型形参有时也被简称为类型参数(type parameter),例如对于泛型(generic type)List<E>而言,List<Stri...转载 2019-05-17 09:15:31 · 1626 阅读 · 0 评论 -
Lombok使用指南
Lombok使用分享一个例子在面向对象编程中必不可少需要在代码中定义对象模型,而在基于Java的业务平台开发实践中尤其如此。相信大家在平时开发中也深有感触,本来是没有多少代码开发量的,但是因为定义的业务模型对象比较多,而需要重复Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。那么是否一款插件或工具能够替大家完成这些繁琐的操作呢?...原创 2019-02-25 20:23:20 · 1069 阅读 · 0 评论 -
spring boot 2.0访问actuator endpoints 404问题
在spring boot 2.0 之后访问/metrics,/routes端点,一直返回404。访问/actuator端点里面只有health和info的信息。{ &amp;quot;_links&amp;quot;: { &amp;quot;self&amp;quot;: { &amp;quot;href&amp;quot;: &amp;quot原创 2019-02-27 16:56:45 · 2868 阅读 · 0 评论
分享