原创 springSecurity重定義Bad credentials信息

Springboot整合了SpringSecurity進行登錄控制 在實際使用的過程中,發現用戶密碼如果輸錯了,界面會提示“Bad credentials” 這個提示可能不明顯,我們需要重定義這個提示信息 這時候,我們可以通過定義mes

原创 Spring security後臺使用自定義註解進行權限控制

最近在使用spring security進行編碼,在實際使用的過程中,遇到的問題記錄一下。 背景:在一個項目中,我使用spring security進行權限控制。不僅前臺控制頁面和按鈕的顯示,還在後臺對沒有權限的請求進行過濾。因爲每個需要

原创 hibernate報錯 Parameter index out of range (2 > number of parameters, which is 1)

今天遇到一個hibernate報錯,在查詢的時候,報了一個錯誤 org.hibernate.HibernateException: java.sql.SQLException: Parameter index out of range (

原创 Failed to get nestedarchive for entry BOOT-INF/lib/axis2-1.6.2.pom

gradle工程使用bootjar打包出jar之後,使用java -jar命令運行jar,然後程序報錯 Exception in thread "main" java.lang.IllegalStateException: Failed

原创 wireshark過濾端口範圍

在wireshark中,如果我們要過濾端口範圍,比如過濾1000到2000端口的數據 網上給的表達式都是tcp.port < 20000 and tcp.port >10000, 然而,我們會發現這個表達式並不能過濾出我們要的數據包,過濾

原创 非侵入式mybatis多數據庫切換實踐

環境:springboot+mybatis 數據庫:mysql+oracle 需求:一個程序中,一部分數據從mysql中查,一部分數據從oracle中查。使用AOP來實現數據庫動態切換 參考網上的mybatis動態數據源,並額外擴展使用A

原创 使用SpringAOP統計運行時間

實現步驟只需要3步: 1.自定義註解 2.定義一個AOP切面 3.在需要統計時間的方法上,添加註解。   自定義一個註解。使用value來定義方法的名稱,方便讀日誌。定義一個閾值,運行時間超過閾值,纔會記錄下來。 /** * 統計方法

原创 @Cacheable有效性檢查

在使用springboot開發項目的時候,我們經常會用到緩存,一般就是通過註解@Cacheable來進行緩存設置。 我們代碼是寫了@Cacheable,我們以爲能生效,但有時候因爲一些原因,導致緩存不生效,程序也能正常運行,而我們卻矇在鼓

原创 使用SpringAOP來捕獲異常

當我們在開發程序的時候,經常遇到方法拋異常,而有時候異常打印出來的信息又不夠完整,這時候,可以通過AOP,自動在拋異常的時候將方法傳入的參數給打印出來。 實現步驟: 1.自定義註解作爲連接點(當然也可以用其他方式指定連接點,我覺得使用註解

原创 使用AOP+mybatis+分頁插件PageHelper分批查詢數據庫

有時候,數據庫中的內容太多,無法一次查詢出來,這時候就需要分批查詢。如果在每個需要分批查詢的地方,都去修改原來的代碼,實現分批,這樣會很麻煩。而Mybatis的分頁插件,正好可以配合AOP來進行無侵入式分頁,不需要修改原有的代碼。下面介紹

原创 記錄一次Java內存溢出排查過程

這兩天公司的一個程序出現問題,頻繁出現內存溢出錯誤OutOfMemory:GC overhead limit exceeded. 雖然知道這個錯誤的原因是因爲Java虛擬機在頻繁進行垃圾回收,使用了98%的時間進行垃圾回收,但是實際回收了

原创 tomcat 啓動失敗,提示循環引用

tomcat啓動的時候,提示如下的錯誤 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start

原创 log4j2 配置文件樣例

提供一個log4j2的配置文件樣例,樣例會把日誌按照級別,分別打印在各自的文件中,並且按照每天進行劃分,每天最多分割10個文件。另外,還有一個單獨的日誌,會記錄特定的日誌。 樣例代碼如下 import org.apache.loggin

原创 《HeadFirst設計模式》迭代器和組合模式的錯誤原因分析和解決辦法

關於《HeadFirst設計模式》一書中,迭代器和組合模式中有一部分代碼是錯誤的,錯誤的類是CompositeIterator,使用這個類,再打印素食菜單的時候,有一些菜單會被重複打印。 如以下菜單 菜單: 早餐:[豆漿,饅頭,玉米]

原创 JAVA數組深拷貝實現代碼

在使用org.apache.commons.lang.ArrayUtils進行數組拷貝的時候,發現其只能實現數組的淺拷貝,而且不支持泛型 經過改造,我自己重新實現了數組的深拷貝,同時支持多重數組拷貝。 因爲Object的clone方法聲明