原创 讓線程按指定順序執行的8種方法

一.前言 本文使用了8種方法實現在多線程中讓線程按順序運行的方法,涉及到多線程中許多常用的方法,不止爲了知道如何讓線程按順序運行,更是讓讀者對多線程的使用有更深刻的瞭解。使用的方法如下: [1] 使用線程的join方法 [2]

原创 使用SpringBoot自帶組件實現定時任務

1.前言 定時任務的使用,在開發中可謂是家常便飯了。定時發送郵件、短信;避免數據庫、數據表過大,定時將數據轉儲;通知、對賬等等場景。 當然實現定時任務的方式也有很多,比如使用 linux下的 crontab 腳本,jdk 中自帶的

原创 利用註解指定Spring啓動時加載的bean

在開發的過程中,一個接口往往有多個實現類。但根據需求,不一定會使用到所有的實現類。 以本人當前遇到的需求爲例,一個系統不同的國家部署時,需要使用不同的實現類。在此給出基於註解的實現方法。 1.註解定義 @Target(Elemen

原创 異常相關知識點梳理

一. 異常是什麼 異常是指阻止當前方法或作用域繼續執行的問題。比如你讀取的文件不存在,數組越界,進行除法時,除數爲0等都會導致異常。 一個文件找不到的異常: public class TestException { pub

原创 @Transactional底層原理

原文鏈接:http://www.codeceo.com/article/spring-transactions.html 一、事務的基本原理 Spring事務的本質其實就是數據庫對事務的

原创 Java併發之AQS

原文鏈接:www.cnblogs.com/waterystone/p/4920797.html 一、概述 談到併發,不得不談ReentrantLock;而談到ReentrantLock,

原创 SpringBoot開發常用配置總結

錯誤頁面配置與全局異常處理 全局錯誤頁面配置 方法一:基於框架默認配置 使用框架默認的錯誤頁面處理。 使用ThymeLeaf模板時 springBoot會自動到src/main/resources/templates/erro

原创 Java實現定時刪除動態生成的文件

在工作中遇到一個需求,需要生成一些Zip壓縮包供用戶下載。爲防止舊文件過多撐爆服務器,需要定期刪除這些生成的文件。 在實現中定義3分鐘文件過期,需要被刪除。 文件地址緩存服務類 此類將文件地址緩存起來,key=uuid,value

原创 Http中Content-Length與Transfer-Encoding區別

1. http/1.1協議中與chunked編碼的相關字段 1)Entity Body: entity-body只有在message-body出現時纔會出現。通過對message-body的解碼獲得entity-body。tra

原创 OOM 常見原因及解決方案

原文鏈接:https://github.com/StabilityMan/StabilityGuide 當 JVM 內存嚴重不足時,就會拋出 java.lang.OutOfMemoryE

原创 Guava學習總結

Cache guava cache是一個本地緩存。 優點 線程安全的緩存,與ConcurrentMap相似,但前者增加了更多的元素失效策略,後者只能顯示的移除元素。 提供了三種基本的緩存回收方式:基於容量回收、定時回收和基於引用

原创 消息隊列高可用性保證

RabbitMQ 的高可用性 RabbitMQ 是比較有代表性的,因爲是基於主從(非分佈式)做高可用性的,我們就以 RabbitMQ 爲例子講解第一種 MQ 的高可用性怎麼實現。 RabbitMQ 有三種模式:單機模式、普通集羣模

原创 API網關——zuul

zuul是什麼 1. API網關 在微服務架構中,通常會有多個服務提供者。設想一個電商系統,可能會有商品、訂單、支付、用戶等多個類型的服務,而每個類型的服務數量也會隨着整個系統體量的增大也會隨之增長和變更。作爲UI端,在展示頁面時

原创 全網最全的Java併發面試題及答案

原文鏈接:https://blog.csdn.net/qq_34039315/article/details/78549311 轉載自公衆號:Java面試那些事兒 1、在java中守

原创 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal解析

說起本地線程變量,我相信大家首先會想到的是JDK默認提供的ThreadLocal,用來存儲在整個調用鏈中都需要訪問的數據,並且是線程安全的。本文將詳細介紹ThreadLocal、InheritableThreadLocal、Tra