自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 如何使用 IDEA 进行远程 debug

前言 在开发中经常遇到这样一个问题,在本地环境跑的好好的代码,一上开发环服/测试服就有问题,这类问题往往很难在本地复现,也就意味着修复改 bug 是个艰难的过程。今天跟大家分享如何使用 IDEA 远程 debug 功能解决上述问题 IDEA 设置 点击菜单栏的Run -> Edit Con...

2020-06-03 00:16:28 23 0

原创 关于指令重排序
原力计划

前言 最近在看 JVM 与高并发相关书籍,发现两本书都提到了指令重排序优化,但都没对指令重排序优化进一步解释,后面在查找了相关资料后才对指令重排序有个整体的了解,此篇文章对该部分知识做一个整理,希望对大家有所帮助 什么是指令重排序 在讲指令重排序之前,先看下面代码,试想一下程序的运行结果 publ...

2020-05-16 20:26:27 103 0

原创 优雅的接收单个参数的 post 请求
原力计划

前阵子开发程序的时候,由于公司用的不是 restful 风格的 api,同事问我根据id删除记录的接口,controller 层参数绑定要怎么写的问题,几番讨论下来,总结了几个方法 使用Map接收参数 @PostMapping("/delete") public ApiRe...

2020-04-13 02:02:32 375 3

原创 Hutool——好用的 Java 工具类库

简介 Hutool是Hu + tool的自造词,前者是作者致敬“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界 Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool...

2020-04-03 00:46:23 56 0

原创 git commit 规范
原力计划

Git 是市面上最流行的版本控制工具,书写良好的代码提交规范能大大提高代码维护的效率,日常开发中使用 git 提交代码要求一定要写 git commit message,否则就无提交代码,很多公司对 git commit message 的格式没有一个明确的规范,导致各个开发人员随意填写提交信息、...

2020-03-29 16:37:15 68 0

原创 我是如何进行单元测试的
原力计划

中发现大家都知道单元测试,也知道 junit,但是没有人知道怎么写 junit 单元测试,在这里分享我在工作中是怎么写单元测试的,供大家参考 什么是单元测试 首先讲讲什么是单元测试,单元测试是指对软件中的最小可测试单元进行检查和验证。单元测试在质量保证中是非常重要的环节,根据测试金字塔模型,越往上...

2020-03-25 01:10:25 38 0

原创 如何测试私有方法

由于 Java 私有方法不允许在类的外部进行访问,当我们在写 junit 测试的时候,就无法像测试其他方法一样通过对象调用的方式对 private 方法进行单独测试。但我们可以通过以下两种方式进行测试 使用反射机制 Java 反射能在运行时获得类的属性和方法,故可以通过 Java 的反射机制对私有...

2020-03-23 00:54:51 70 0

原创 Java CopyOnWrite

CopyOnWrite 介绍 Copy-On-Write简称COW,是一种程序设计中的优化策略,其实现思路是大家都在共享一个内容,当有人想要修改内容的时候,就创建一个改内容的副本,对副本进行修改,然后再将原本的引用指向副本,完成内容的修改。是一种读写分离的并发策略,也是一种延时惰性策略 Java ...

2020-03-21 00:55:54 23 0

原创 Fail-fast 机制分析

什么是 fail-fast 机制 fail-fast(快速失败)机制是集合中比较常见的错误检测机制,防止在对集合进行遍历的时候,出现意料之外的修改,导致意想不到的结果 写个简单的例子了解下什么是fail-fast机制 @Test public void failFastTest(){ Li...

2020-03-19 01:39:51 21 0

原创 ArrayList 扩容分析
原力计划

ArrayList 初始容量 ArrayList 有多个不同的构造方法,不同的构造方法的初始容量是不同的。介绍之前先看下 ArrayList 都有哪些变量 // 默认初始化容量=10 private static final int DEFAULT_CAPACITY = 10; // 空数组...

2020-03-16 00:57:26 27 0

原创 ElasticSearch——高性能分布式搜索引擎

ElasticSearch 简介 ElasticSearch(简称 es)是一款高性能的实时分布式搜索和分析引擎,它可以从海量数据中快速的找到相关信息,当你在 github 搜索时,ElasticSearch 可以在 1300 亿行代码中找出你想要的内容。 安装 入门 结构化查询 创建mappin...

2020-03-01 16:08:41 53 0

原创 Spring Boot Actuator 监控

简述 spring boot actuator 是 spring boot 为监控线上项目运行指标所提供的一个 starter 模块,spring boot actuator 不跟其他模块那样主要使用于业务开发或连接一些外部资源,完全是用于暴露自身信息的模块,方便我们监控和管理线上项目 Act...

2020-01-14 16:36:12 96 0

原创 spring cloud 系列文章(一)Eureka 使用

介绍 关于 Eureka Eureka 是由 Netfix 开发的服务注册发现组件,后来 spring cloud 将其集成到其子项目 spring-cloud-netfix 中。Eureka 本身是基于 REST 的服务,在集群中主要用于服务管理。Eureka 提供了 Java 的客户端组件,同...

2019-09-02 00:06:47 75 0

原创 微服务那点事

前言 记得刚开始出来实习的时候,那时候连 Java Web 是什么都没有个清晰的概念,面试的时候面试的是 Android,结果去到公司却被叫去干后端。那时候只记得上过两节 Java SE 的课,连 SSH 都没搭建过,然后公司用的框架是 SSM,那时候抱佛脚恶补了一下 Java Web 的知识,...

2019-08-23 16:58:23 157 0

原创 Spring Boot Admin 使用

简介 Spring Boot Admin 是一个开源社区项目,用于管理和监控你的 Spring Boot 项目,被监控的应用可以作为 Spring Boot Admin Client 注册到 Spring Boot Admin Server 上,由统一监控。Spring Boot Admin 的前...

2019-07-19 02:03:49 97 0

原创 Java按行分割大文件

简介 工作的时候,需要将一个大的文本文件按行分割成几个小文件。本来懒得写,想网上copy一下得了,但是 google 了一遍,找了几个代码写的有点乱,尝试了之后发现效率太慢了,一个 1000000 行200M 的文件,按每个文件 2000 行分割,要6分多钟才能跑完。没办法自己写了个,试了几次,...

2019-04-23 00:54:35 1023 0

原创 Tomcat 警告:Unknown version string [4.0] . Default version will be used.

问题描述 在新建的 web 项目中,tomcat 启动的时候控制台出现了 Unknown version string[4.0] . Default version will be used. 警告。经过查略资料发现是 web 版本跟 tomcat 版本不匹配导致的。我项目中的 web 版本是 ...

2019-03-12 16:15:04 1011 0

原创 常用设计模式——装饰器模式

简介 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其类的结构的一种结构型模式。这种模式创建了一个装饰类,用来包装原有的类,并在保证类的签名完整性的条件下,提供了额外功能。 实现 前几天星巴克的猫爪杯可谓是赚足眼球,一个小小的杯子被网友们热捧。...

2019-03-07 22:43:37 30 0

原创 常用设计模式——单例模式

简介 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以提高代码的可重用性,让代码更容易理解,也能保证代码的可靠性。常用的设计模式大概有23种,如单例模式、抽象工厂模式、建造者模式、观察者模式等,这里首先跟大家介绍下单例模式。 什么是单例模式 单例模...

2019-02-28 17:16:21 48 0

原创 聊聊跨域

传统的javaee架构 下面是常见的 javaee 架构的简化版,客户端请求 apache/nginx 代理服务器,代理服务器接收到请求后将请求转发到后台的应用服务器(tomcat、jeety 等),后台应用服务器处理请求,将结果返回给代理服务器,代理服务器接收到请求后,再将请求返回给客户端。这...

2019-02-15 17:13:36 381 0

原创 使用 Dozer 进行对象的映射

Dozer简介 Dozer 是 Java Bean 到 Java Bean 的映射器,他以递归的方式将数据从一个对象复制到另一个对象。Dozer 支持简单属性映射、双向映射、隐式映射以及递归映射。使用该映射器可以很方便的在项目中进行 pojo、do、vo 之间的转换。 快速入门 现有两个 J...

2019-02-10 16:22:31 1360 0

原创 Spring Boot(七)logback配置

简介 Java 日志框架众多——常用的有 java.util.logging、log4j、logback、commons-logging。logback 是 log4j 框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持 SLF4J。默认情况下,Spring Boo...

2019-01-04 15:59:06 72 0

原创 IDEA 调试技巧

简介 在工作中看到很多水平不错的程序员,在调试代码的时候,也还只是停留在单步 debug 的阶段。如果能掌握更多的代码调试技巧,那么将大大提升工作效率。下面就让我么一起来系统的学习下 IDEA 的调试技巧吧。 debug界面介绍 默认设置下,idea 用 debug 模式启动项目时,会自动进...

2018-11-28 15:43:20 1129 2

原创 Spring Boot(六)整合Druid连接池

简介 druid是阿里的开源数据库连接池,并且能提供提供强大的监控和扩展功能。 引入依赖 Spring Boot集成druid连接池需要引入以下依赖: <dependency> <groupId>com.alibaba</groupId> ...

2018-11-08 16:18:33 53 0

原创 Spring Boot(五)基于restful风格的增删改查

简介 传统的SSM项目,如果想要编写基于restful风格的接口,需要在web.xml配置文件中配置HiddenHttpMethodFilter过滤器,将页面普通的put请求转换成delete、put请求。而spring boot则已经帮我们配置好了,故使用spring boot编写restfu...

2018-11-08 11:19:58 471 0

原创 Spring Boot(四)开启声明式事务

简介 以前用Spring想要用事务的时候,都需要自己在spring的配置文件中配置事务管理器。而Spring Boot则默认对jpa,jdbc,mybatis开启了事务,引入他们的依赖的时候,事务就开启了。使用事务只需要一个@Transactional注解就可以了。 准备 以上一篇文章【Sp...

2018-11-07 23:33:06 87 0

原创 Spring Boot(三)整合MyBatis,MyBatis Generator

简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Ja...

2018-11-02 20:16:51 98 0

原创 Spring Boot(二)配置文件详解

简介 Spring Boot使用“习惯由于配置”(项目中存在大量默认的配置,而且内置tomcat)的理念,让你的无需手动进行配置就可以将项目运行起来。使用Spring Boot很容易创建一个独立运行的、准生产级别的Spring框架的项目。同时,Spring Boot还提供一个全局配置文件对一些默...

2018-11-02 18:39:42 64 0

原创 Spring Boot(一) 第一个Spring Boot项目

简介 以前我们用SSM来开发项目的时候,需要先进行开发环境的搭建,例如确定技术框架及版本,还有各框架之间的兼容性问题,在经过繁琐的配置之后,还要测试框架是否能正常运行,才能将项目给到项目成员进行开发。该方式不仅抵消,而且浪费大量的时间。Spring Boot正式为了取代这些繁琐的工作而生的。Sp...

2018-11-02 16:16:02 332 0

原创 Log4j入门教程

简介 Log4J是 Apache 的一个开源项目(官网http://jakarta.apache.org/log4j),通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日...

2018-07-12 15:24:46 11283 3

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