原创 使用Docker構建支持中文字體的Java鏡像

在構建鏡像的過程中安裝字體管理器和中文字體 構建jre鏡像,參考這篇文章: Docker構建自定義的Java鏡像:https://blog.csdn.net/zimou5581/article/details/9402274

原创 深入淺出Spring Security(三):FilterChainProxy的運行過程

上篇回顧 我們已經知道了Spring Security的核心過濾器的創建和原理,本文主要介紹核心過濾器FilterChainProxy是如何在tomcat的ServletContext中生效的。 ServletContext如何拿

原创 elasticsearch7.7安裝部署

這裏只搭建了一個節點,提供給測試環境使用,暫未考慮ES集羣擴容和優化。 ES 7.0 是 2019 年 4 月份發佈的,底層是 Lucene 8.0。其他重要特性有: 廢除單個索引下多 Type 的支持 ES Security

原创 SkyWalking7.0安裝部署

1. 安裝 8.0版本的UI 改爲自定義查詢語句,需要配置定製化圖表,所以暫時使用7.0版本。 8.x版本後會增加kafka數據傳輸特性,可以解決異地機房部署問題,目前2020-06暫未發佈。 elasticsearch 安裝

原创 Linux中普通用戶配置sudo權限(帶密或免密)

配置步驟如下: 1、登陸或切換到root用戶下; 2、添加sudo文件的寫權限,命令是:chmod u+w /etc/sudoers 3、編輯sudoers文件:vi /etc/sudoers 找到這行 root ALL=(ALL

原创 程序員如何寫簡歷(附模板)

背景 對於一個程序員來說,簡歷很重要。我身邊就有這麼一個例子。 朋友A和朋友B,都投了一家公司的崗位。 友A簡歷被拒,用人的項目組認爲簡歷與崗位不匹配。 友B簡歷經過我修改之後,不但簡歷過了,還順利的通過了一二三四輪面試,最終拿

原创 兩年Java面試總結:阿里四面掛(下)

一面 Java集合類 JUC ConcurrentHashmap 初始化 put過程 衝突 size實現 Java併發編程(voliatle synchronize reentrantlock aqs cas ABA) JVM組

原创 兩年Java面試總結:兩個offer(中)

杭州端點 一面: 項目介紹 spring security spring cloud gateway java 容器類介紹 容器類的併發處理,list 併發處理的手段 voliatle synchronize reentrantl

原创 Java知識體系梳理

1. Java基礎 JDK jvm組成: 核心類庫:NIO、容器、Object、線程池 類加載:加載過程,加載器,雙親委派,破壞雙親委派,OSGI 併發編程:Synchronize reentrantlock volatile a

原创 Java併發編程基礎

背景 計算機由CPU、存儲器、輸入輸出設備組成。 CPU內部又包括了控制器、運算器、寄存器(存儲器) 其中進程是計算機資源分配的最小單位,線程是程序執行的最小單位(CPU資源調度的最小單位) 。 CPU通過給每個線程分配CPU時

原创 簡單工廠、工廠方法、抽象工廠的區別

1. 簡單工廠/靜態工廠 定義一個工廠類,它可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類。因爲在簡單工廠模式中用於創建實例的方法是靜態(static)方法,因此簡單工廠模式又被稱爲靜態工廠方法 優點:簡單易

原创 自用Redis啓動腳本

#!/bin/sh REDISPORT=6379 EXEC=/opt/redis-5.0.4/src/redis-server CLIEXEC=/opt/redis-5.0.4/src/redis-cli PIDFILE=/op

原创 深入淺出Spring Security(五):認證和授權的過程

上篇回顧 上篇介紹了HttpSecurity如何建造過濾器鏈,本文主要介紹幾個主要的過濾器。 認證過濾器 UsernamePasswordAuthenticationFilter 參數有username,password的,走Us

原创 log4j、logback、slf4j的區別和聯繫

1. 常見的Java日誌框架 實現框架: log4j :出現於JDK 1.3之前,它定義了Logger、Appender、Level等概念 log4j2 :log4j的重寫版 j.u.l (java.util.l

原创 如何動態代理Controller的接口並註冊到SpringMVC中

1、實現對Controller接口的動態代理 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface MyController