分页助手PageHelper的使用

2021-02-22
阅读 3 分钟
4.7k
分页助手PageHelper的使用简介pagehelper是一个很好用的mybatis的分页插件,通过这个插件可以非常方便的实现分页功能。官网地址使用这个插件的使用方式非常简单。引入依赖新建一个springboot项目,添加以下依赖: {代码...} 添加配置 {代码...} 然后在启动类上指定tk-mapper的包名。 {代码...} 添加数据库的实体类 {代码...

Java中 volatile的使用和理解

2021-01-31
阅读 3 分钟
2.1k
简介Volatile 是 Java 虚拟机提供轻量级的同步机制。它有三个特性:保证可见性不保证原子性禁止指令重排基本原理当对非volatile变量进行读写的时候,每个线程先从主内存拷贝变量到CPU缓存中,如果计算机有多个CPU,每个线程可能在不同的CPU上被处理,这意味着每个线程可以拷贝到不同的CPU cache中。  volatile共享变量则...

SpringBoot中@EventListener注解的使用

2021-01-26
阅读 12 分钟
34.1k
在开发工作中,会遇到一种场景,做完某一件事情以后,需要广播一些消息或者通知,告诉其他的模块进行一些事件处理,一般来说,可以一个一个发送请求去通知,但是有一种更好的方式,那就是事件监听,事件监听也是设计模式中 发布-订阅模式、观察者模式的一种实现。

深入理解线程中断方式

2021-01-24
阅读 2 分钟
2.5k
1.stop是通过立即抛出ThreadDeath异常,来达到停止线程的目的,此异常抛出有可能发生在任何一时间点,包括在catch、finally等语句块中,但是此异常并不会引起程序退出(笔者只测试了Java8)。

Java中的condition类

2021-01-24
阅读 5 分钟
6.2k
相比使用Object的wait()、notify(),使用Condition的await()、signal()这种方式实现线程间协作更加安全和高效。

SpringBoot中的异步任务、邮件以及定时任务

2021-01-17
阅读 4 分钟
1.4k
在我们的业务处理中,比如处理完成需要3s才能完成,但是我们需要如果要让用户等3s,则体验非常差,所以我们采用异步的方式去处理,可以通过线程池来处理 ,但是还要写线程,而springboot中已经默认提供了这种能力 ,我们只要开启即可使用。

SpringBoot整合JDBC

2021-01-17
阅读 3 分钟
5.3k
JDBC是最原基本的连接数据源的方式,在springboot中所有和数据源有关系的都在Spring Data家族中,所以我们看看springboot中如何使用JDBC来实现对数据库的增删改查操作。

SpringBoot整合Druid

2021-01-17
阅读 12 分钟
19.6k
Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里...

Java中定时任务Timer、Spring Task、quartz详解

2021-01-17
阅读 8 分钟
6.3k
Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。使用较少。(不推荐使用,代码案例中已经给出说明)

Spring 中数据校验 @Validated和@Valid 的区别

2021-01-16
阅读 3 分钟
2.3k
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。

Spring Security 的学习与使用

2021-01-16
阅读 7 分钟
2.6k
Spring Security 的学习与使用本文的1.Spring Security 简介Spring Security本质是一个过滤器链,有很多过滤器2.SpringSecurity的过滤器加载过程使用SpringSecurity配置过滤器核心类:DelegatingFilterProxy首先进入DelegatingFilterProxy的doFilter()方法中然后在这个方法中有这样一个delegateToUse = initDelegate(wac...

Swagger 的介绍以及使用

2021-01-16
阅读 5 分钟
3.9k
Swagger 是一个主要用来在线生成文档的插件,这里主要用来动态生成api接口供前后端进行交互,如果不生成的话就需要写静态文档来交互,那样不仅很慢而且不容易修改,那Swagger就可以解决这个问题。

Kafka的学习与使用

2021-01-16
阅读 3 分钟
1.5k
起初是由LinkedIn公司采用Scala语言开发的一个分布式、多分区、多副本且基于zookeeper协调的分布式消息系统,现已捐献给Apache基金会。它是一种高吞吐量的分布式发布订阅消息系统,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark、Flink等都支持与Kafka集成。

POI 和 easyExcel 的简介

2021-01-16
阅读 14 分钟
7.1k
Java操作Excel的POI和easyExcel的学习与使用本文的代码已经同步到码云,码云地址在excel-demo模块里1.POI 和 easyExcel 的简介1.1Apache POI 简介Apache POI 官网:[链接]主要功能:1.2easyExcel 简介easyExcel 官网地址:[链接]官方文档地址:[链接]EasyExcel 是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存...

用Netty 自己实现dubbo RPC

2021-01-16
阅读 8 分钟
1.6k
RPC (Remote Procedure Call) 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外的为这个交互编程。也就是说可以达到两个或者多个应用程序部署在不同的服务器上,他们之间的调用都像是本地方法调用一样。RPC 的调用如下图。

Java中joda日期格式化工具的使用

2021-01-11
阅读 14 分钟
3.5k
Java自带日期格式化工具DateFormat ,但是DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如 将 SimpleDateFormat 限制在 ThreadLocal 中。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。因此,从日...

Java基础之注解和反射

2021-01-11
阅读 16 分钟
4.8k
注解(Annotation)很重要,现在的开发模式都是基于注解的,JPA是基于注解的,从Spring基于注解的,从Hibernate也是基于注解的,注解是JDK1.5之后才有的新特性.

Junit 单元测试以及断言

2021-01-11
阅读 2 分钟
3.5k
单元测试是用来进行测试我们业务代码是否有问题,而不用在业务代码中到处System.out.println(),在基于maven的项目中,默认就给我们生成了test目录专门用来写单元测试。在spring 项目中主要使用Junit框架来实现单元测试,而单元测试中最多用到的就是断言,通过断言来判断程序是否符合预期。

Jmeter入门教程

2021-01-11
阅读 2 分钟
3k
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自...

Apache HttpClient 使用教程 以及 Spring 的 RestTemplate

2021-01-11
阅读 9 分钟
10.5k
HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本。我们可以通过HttpClient发送各种HTTP方法。

BIO、NIO和AIO的区别以及Netty 简介

2021-01-07
阅读 2 分钟
3.7k
BIO、NIO和AIO的区别以及Netty 简介要分清这三个,首先要分清这两组概念。同步(Synchronization)和异步(Asynchronous)的方式同步和异步都是基于应用程序所在操作系统处理IO事件所采用的方式,比如同步:是应用程序要直接参与IO读写的操作。异步:所有的IO读写交给搡作系统去处理,应用程序只需要等待通知。举个通俗的例...

SpringBoot自动装配原理

2021-01-04
阅读 21 分钟
3.3k
springboot给我们的开发带来了极大的便利,并通过启动器的方式方便我们添加依赖而不用过多的关注配置,那么springboot是如何进行工作的?一起探究下。

Typora安装 Pandoc实现导出功能

2021-01-03
阅读 1 分钟
3.8k
在使用Typora的时候,如果想要把写好的MarkDown文件导出到其他地方的话,是比较方便的。但是Typora本身只支持PDF和HTML两种方式的导出,如下图所示,如果想导出下面的方式他就会提示安装Pandoc插件,name看下如何安装这个插件。

IDEA安装使用protobuf

2021-01-03
阅读 1 分钟
5.4k
Rrotobuf 是Google 发布的开源项目,全称 Google Protocol Buffers, 是一种轻便高效的结构化数据存储格式,可以用与数据的序列化。它与开发语言无关,和平台无关,具有良好的可扩展性。Protobuf和所有的序列化框架一样,都可以用于数据存储、通讯协议。

IDEA 中使用 spring-boot-devtools 实现热部署

2021-01-03
阅读 2 分钟
3.4k
首先要让IDEA 能够自动编译,自动加载。打开settings ,找到如下位置,勾选 Build project automatically

IDEA 中 Debug 技巧

2021-01-03
阅读 2 分钟
1.3k
IDEA 中 Debug 技巧参考码匠笔记IDEA 中debug 主要是这8个按钮,从左往右依次是:Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。Step Over (F6):步过,一行一行地往下走,如果这一行上有方法不会进入方法。Step Into (F5):步入,如果当前行有方法,可以...

使用jGit 通过gitUrl 获取Git的所有分支

2021-01-03
阅读 2 分钟
4.2k
在企业中,在针对代码规范规约的时候,就需要保证你的jar包的代码是可追溯的。尤其在大的企业里,对代码质量的检查也是很多的,比如通过sonar进行代码的管理,通过自己编写maven 插件来自定义规范并通过Jenkins 去自动化持续发布和部署。那么在进行提交你所发布的jar包时就需要根据你的git地址去拉取你的分支,然后你要...

Git 教程之 设置 .gitignore, IDEA 安装插件以及设置全局文件

2021-01-03
阅读 4 分钟
4.7k
在使用GitHub 或者 GitLab 等分布式代码管理平台时,我们在进行代码提交的时候,往往不需要把所有的东西,比如一些无用的文件或者隐私的文件不需要进行上传,那个Git 提供 .gitignore 文件用来忽略不想要上传的问题。

JUC

2021-01-03
阅读 2 分钟
1.6k
1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!!!);wait()方法则是指当前线程...

API和SPI的简单介绍

2020-12-30
阅读 1 分钟
4.5k
先来一段官话的介绍:SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制.我们结合图片来理解一下。