原创 druid 支持PasswordCallback

druid 支持PasswordCallback 首先 項目引入druid相關jar 其次 修改配置文件 配置文件配置druid的配置參數 spring.datasource.druid.connect-properties

原创 學會Java中的線程池

前言 Java中的線程池已經不是什麼神祕的技術了,相信在看的讀者在項目中也都有使用過。關於線程池的文章也是數不勝數,我們站在巨人的肩膀上來再次梳理一下。 讀完此文你將學到: ThreadPoolExecutor中常用參數有哪些?

原创 定時任務中cron表達式配置詳解

定時任務 cron表達式解析 省略定時任務的配置,其實就是兩個註解@EnableScheduling 和 @Scheduled(cron = "* 0/1 * * * ?") ,在這裏沒什麼好說的,百度搜索的資料一大堆,自己去看;

原创 java反射代碼實戰解析

package com.practise; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.refle

原创 java用easyexcel導入導出excel

easyexcel導出excel模板 pom文件添加jar依賴 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexce

原创 RSA加密 、解密、簽名、驗籤

RSA加密 、解密、簽名、驗籤 import org.apache.tomcat.util.codec.binary.Base64; import javax.crypto.Cipher; import java.io.Byte

原创 項目中可以限流的6種方法

限流分類 限流的實現方案有很多種,這裏稍微理了一下,限流的分類如下所示: 合法性驗證限流:比如驗證碼、IP 黑名單等,這些手段可以有效的防止惡意攻擊和爬蟲採集; 容器限流:比如 Tomcat、Nginx等限流手段,其中 Tomc

原创 zookeeper單機模式下安裝和啓動詳解

首先,是下載zookeeper安裝文件(網上很多,這裏就不給出地址了),小編在這裏用的是zookeeper-3.4.7.tar.gz。下載完成後進行解壓,解壓:tar -xf zookeeper-3.4.7.tar.gz 然後,創

原创 Java併發編程之基礎篇(八)——死鎖

哲學家問題 一提到死鎖,很多人都會想到哲學家問題。假設有5個哲學家,圍坐在一張圓桌旁,哲學家只做兩件事,喫飯和思考。喫飯的時候需要使用兩隻筷子,但是每個哲學家面前只放了一支筷子,如果想喫飯,必須借用旁邊哲學家的筷子。 這個時候如何

原创 Java併發編程之基礎篇(六)——Executor框架及線程池

這篇主要說一下Executor框架及線程池。什麼是線程池 顧名思義,線程池就是存放線程的池子,池子裏面存放的是已經創建好的N個線程;Java裏面一般用List或Set等容器類來存儲線程,實現線程池功能。 爲什麼要使用線程池 首先,

原创 Java併發編程之基礎篇(七)——取消及關閉

上一篇中我們注重講了線程和任務的啓動,所以如何啓動線程和任務我們已經很清楚了,但是如何做到線程及任務安全的關閉及取消,也是有一定技巧的。 取消任務 大部分場景下,啓動的任務都會按照計劃正常的運行,然後結束。但是有些場景我們必須提前

原创 Java併發編程之基礎篇(五)——閉鎖、柵欄、信號量

Java併發編程之基礎篇(五)——閉鎖、柵欄、信號量 閉鎖——CountDownLatch 閉鎖類似於一道大門,所有的線程都在大門外等候,當大門打開時,所有線程一起開工。 CountDownLatch提供了一個構造函數,可以傳入一

原创 java反射解析

package com.practise; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.refle

原创 異步編程之CompleTableFuture

異步編程之CompleTableFuture 一、前期準備(基礎講解) 1、 什麼是異步? 所謂異步調用其實就是實現一個可無需等待被調用函數的返回值而讓操作繼續運行的方法。在 Java 語言中,簡單的講就是另啓一個線程來完成調用中

原创 Java併發編程之基礎篇(二) -- 鎖

Java併發編程之基礎篇(二) – 鎖 上一篇基礎篇介紹了併發編程最基本的東西。這篇說一下多線程如何正確的訪問共享可變資源。 所謂的共享可變資源就是每個線程都可以讀也都可以寫的資源。如何讓多個線程正確的修改以及讀取共享變量是一門