原创 使用新版本EasyExcel優雅的導入和導出Excel文件

一、需求描述 最近系統後臺有個關於使用Excel文件導出數據的需求,首先想到了POI和阿里的EasyExcel。經過技術選型和結合具體場景,最終決定使用EasyExcel。 使用過程中,遇到了一些問題,然後去查找資料,發現大多數資

原创 spring源碼分析之Aop

今天讀spring源碼,讀到aop相關內容,在此記錄一下,以便以後複習和查閱。 一、spring如何實現Aop 這裏簡單的說下原理,spring實例化bean要經歷一套完整的生命週期,在這個過程中會對要實例化的bean進行各種各樣的處

原创 element ui 實現表單序號翻頁累加

一、需求描述 需要序號根據數據的條數累加顯示,且翻頁後仍然保持正常的序號,如下圖所示。 這是第一頁, 這是第二頁, 二、解決方案 在el-table-column中標註,type=“index”, 然後使用:index綁定計算

原创 手寫模擬SpringMVC

前言: springmvc想必大家都有用過,但是你有去真正的瞭解過springmvc究竟是怎麼進行工作的嗎? 爲什麼加上@controller @RequestMapping等註解,就會映射到指定類的方法上呢? 下面我們就來探究一下,

原创 Vue-Cli 4版本運行環境配置

一、問題描述 Vue-Cli自3.x以上版本取消了config目錄,我們沒法直接在config目錄下的文件中對運行環境進行配置,因此需要開發者手動完成配置。 二、配置方法 1.新建vue.config.js文件 在項目的根目錄新建

原创 Spring事件發佈與監聽

最近算是把spring整體的又過了一遍,發現很多東西雖然用的多,但是有些思想理解的不夠透徹,在此記錄下, 順便感嘆下,spring源碼看了大部分,這纔沒過多久又忘了 TnT 。 一、事件監聽相關概念介紹  1、流程分析 事件:做了什麼

原创 Spring應用之AOP的使用和總結

前面一篇文章分析了Spring AOP的原理,下面這篇文章對Spring AOP做一個簡單的介紹和總結。 一、Spring AOP的常見面試題目 1.AOP是什麼 與OOP對比,面向切面,傳統的OOP開發中的代碼邏輯是自上而下的,而

原创 使用nacos作爲配置中心獲取不到配置內容

一、問題描述 最近要搞分佈式配置中心,然後技術選型方面考慮了spring-cloud-config和阿里開源的nacos。 但是在項目代碼和nacos完全啓動後,發現並沒有訪問到nacos中的配置項。 二、解決方案 1.檢查配置文

原创 Spring之@DependsOn的實現原理

爲什麼要控制Bean的加載順序? 首先spring容器對一般的bean的初始化順序是不確定的(個別Spring自身初始化用的bean和配置類的bean會優先初始化),但是我們在某些場景下(具體場景如下面舉例),我們又需要控制順序

原创 Spring註解之@Import用法

最近在看spring5.1以及mybatis-spring源碼的時候,發現@MapperScan以及很多springboot的@EnableXXX註解,都用到了這個@Import註解。所以打算仔細研究下該註解的作用。 順便把類似的@Im

原创 nth-child的使用方法

一、需求描述 在開發過程中,會碰到一些選擇器的需求: 例如使列表中的第一項或者最後一項顯示不同的樣式 、列表中的奇數或者偶數項顯示不同的背景色 . . . 等等。 我們可以通過 CSS 來實現這樣的效果,CSS 給我們提供了幾個

原创 軟件設計七大原則:(五)迪米特原則

一、迪米特原則簡介 定義:一個對象應該對其他對象保持最少的瞭解。又叫最少知道原則。 儘量降低類與類之間的耦合 優點:降低類之前的耦合 強調只和朋友交流,不和陌生人說話 什麼是朋友類? 朋友類指的是出現在成員變量、方法的輸入、輸出

原创 軟件設計七大原則:(三)單一職責原則

一、單一職責原則簡介 定義:不要存在多於一個導致類變更的原因 一個/類/接口/方法只負責一項職責 優點:降低類的複雜度、提高類的可讀性,提高系統可維護性、降低變更引起的風險。 二、代碼實現 public class Bird

原创 軟件設計七大原則:(二)依賴倒置原則

一、依賴倒置原則簡介 定義:高層模塊不應該依賴底層模塊,二者都應該依賴其抽象 抽象不應該依賴細節,細節應該依賴抽象 針對接口編程,不要針對實現編程 二、代碼實現 public class Evan { private

原创 軟件設計七大原則:(四)接口隔離原則

一、接口隔離原則簡介 用多個專門的接口,而不再使用單一的總接口,客戶端不應該依賴它 不需要的接口。 一個類對一個類的依賴應該建立在最小的接口上。 建立單一接口,不要建立龐大臃腫的接口。 儘量細化接口,接口中的方法儘量少。 注意: