原创 史上最強java的poi工具excel操作工具easyexcel

https://www.yuque.com/easyexcel/doc/easyexcel 64M內存1分鐘內讀取75M(46W行25列)的Excel 當然還有急速模式能更快,但是內存佔用會在100M多一點 阿里開源組件,牛到不行

原创 springBoot切面AOP註解實現開箱即用redis分佈式鎖

redis實現分佈式鎖簡單又實用,這裏是一個開箱即用redis分佈式鎖 pom文件添加除springBoot相關依賴以外的以下依賴包 <!-- https://mvnrepository.com/artifact/cn.hutoo

原创 spring-boot集成tkmybatis通用mapper和逆向工程mybatis-generator-core生成實體

一,引入依賴 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <gro

原创 spring註解切面封裝並解析spring的EL表達式自定義緩存註解

學習了自定義緩存註解,在這裏做下記錄 以下代碼簡單的實現了一個緩存的流程:查詢數據時先查詢redis緩存,緩存中沒有就去Mysql中取出並緩存到redis中。 這次要替代一個以前從來沒遇到過的點,就是spring的EL表達式的解析

原创 併發編程之ReentrantLock,Condition阻塞隊列,嘗試鎖,獲取鎖時限時等待,可響應中斷,公平鎖,同步鎖

併發編程的核心簡單表述就是一下三點: 1.原子性 所謂原子性是指在一次的操作或者多次的操作中,要麼所有的操作全部都得到了執行並且不會受到任何因素的干擾而中斷,要麼所有的操作都不執行。i++不能保證原子性。synchronized關

原创 java結合微信小程序實現支付,非常簡單

java微信小程序demo支付只需配置支付一下參數即可運行 三、實現步驟 1.在小程序中獲取用戶的登錄信息,成功後可以獲取到用戶的code值 2.在用戶自己的服務端請求微信獲取用戶openid接口,成功後可以獲取用戶的openid

原创 java8新特性lambda和stream的學習和使用

一 java8 lambda表達式用法 1 什麼是lambda表達式   Lambda表達式有兩個特點:一是匿名函數,二是可傳遞。 匿名函數的應用場景是: 通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用Lambd

原创 spring監聽器的實現及實現原理,觀察者模式,發佈訂閱的實現機制

說到設計模式不得不提設計原則,可以說設計模式就是遵循着設計原則爾孕育而出的。 觀察者模式 這裏簡單介紹一下觀察者模式 import org.springframework.context.ApplicationContext;

原创 設計原則優化思路簡單的模板模式

說到設計模式不得不提設計原則,可以說設計模式就是遵循着設計原則爾孕育而出的。 import com.service.springTest.VipCalculateService; import com.service.spri

原创 springBoot加redis實現session共享單點登錄

單點登錄實現session共享有很多方法,主要就是session記錄用戶的登錄票據。這裏簡單的介紹三種方式,並說明場景和優劣,本人推薦第三種。 添加依賴 <dependency> <grou

原创 ajax實戰:(ajax異步下載文件)請求二進制流進行處理,下載文件不跳轉頁面

需求 管理後臺需要隨時下載數據報表,數據要實時生成後轉換爲excel下載 文件不大,頁面放置“導出”按鈕,點擊按鈕後彈出保存文件對話框保存 說明:第一種方法使用a標籤直接可以滿足大部分人需求,第二種方法純粹是在說實現方法以及更

原创 java線程的等待與喚醒demo演示park,wait

import java.util.concurrent.locks.LockSupport; /** 三種線程協作通信的方式:suspend/resume、wait/notify、park/unpark */ public c

原创 線程生命週期及狀態

/** * 示例2 - 多線程運行狀態切換示例 <br/> */ public class Demo2 { public static Thread thread1; public static Demo2 obj;

原创 最全java線程池詳解ThreadPoolExecutor

package com.study.hc.thread.chapter1.thread; import java.util.Collections; import java.util.List; import java.util