原创 apache cxf 框架wsdl2java命令的使用(自動生成客戶端和服務端代碼)

apache cxf 框架wsdl2java命令的使用。 -encoding是指定編碼類型; -p 指定包名 -d 指定生成目錄 -all生成服務端和客戶端代碼 -client 生成客戶端代碼 -server生成服務端代碼 wsdl2ja

原创 java掃描包(包含自己寫的包或者jar中的包)及子包下的所有類

不管是在Spring還是Mybatis中,我們都需要配置一個包路徑進行掃描類對象。 在Spring中,我們需要配置包路徑,讓Spring容器能掃描包下面的Bean組件。在mybatis中,我們需要配置mapper包路徑,以掃描mapper

原创 Hibernate本地SQL結果集轉換爲自定義POJO對象

Hibernate如果用於單表的增刪改查,其方便性不言而喻,但很多時候我們需要進行關聯查詢。這時候Hibernate可能不是太方便了。好在Hibernate提供了本地SQL,允許我們手寫SQL語句。 Hibernate之所以不用手寫SQL

原创 用動態代理給接口寫默認實現,並手動注入到Spring容器中

我們大家都知道,mybatis的mapper接口,我們並沒有手動編寫實現代碼,但仍然能在程序中注入到Spring容器並使用。這裏面就用到了動態代理的原理。 下面,我也編寫一個接口,代碼未給出實現,通過動態代理進行接口的默認實現,通過Fac

原创 spring中的RuntimeBeanReference的使用

當我們需要動態注入Bean,並給該Bean的屬性注入其他Bean時,比如在Mybatis和Spring的整合中,我們需要動態注入Mapper到spring容器中,而該Mapper如果需要執行SQL語句,還需要持有SqlSessionFac

原创 springboot2.0與quartz整合

我數據庫用的是Oracle數據庫,初始化腳本如下: -- 存儲每一個已配置的 Job 的詳細信息 CREATE TABLE qrtz_job_details ( SCHED_NAME VARCHAR2(120) NOT NU

原创 創建動態代理對象bean,並動態注入到spring容器中

使用過Mybatis的同學,應該都知道,我們只需要編寫mybatis對應的接口和mapper XML文件即可,並不需要手動編寫mapper接口的實現。這裏mybatis就用到了JDK動態代理,並且將生成的接口代理對象動態注入到Spring

原创 JVM類加載器及類加載機制

類加載器分爲JVM自帶的類加載器和用戶自定義的類加載器。 一、JVM自帶的類加載器又分爲以下三種 啓動類加載器(bootstrap)、擴展類加載器、應用(系統)類加載器。 其中啓動類加載器負責加載$JAVA_HOME\jre\lib路徑下

原创 spring security如果未登錄,返回JSON數據

默認情況下,spring security如果檢測到未登錄,會返回一個登錄頁面。對於前後端分離的項目,我們一般是希望能返回自定義的JSON數據。這時候,就需要繼承類LoginUrlAuthenticationEntryPoint,並重寫其

原创 spring security自定義權限攔截FilterInvocationSecurityMetadataSource

一般情況下,我們如果需要自定義權限攔截,則需要涉及到FilterInvocationSecurityMetadataSource這個接口了。 這裏有個坑爹的地方。如果用戶未登錄,但是已經設置了攔截白名單的URL,仍然會進入到權限驗證裏面來

原创 spring boot整合spring security(前後端分離時的json登錄方式,解決獲取不到用戶名密碼問題)

如果是自己驗證用戶名密碼的話,spring security僅僅支持傳統的form表單方式(form-data)登錄。這是一個比較大的坑點。現在都流行使用前後端分離,前端發送的是json格式數據。下面我談下如何操作。 通過跟蹤源代碼,可以

原创 spring boot中 requestBody裏面的json數據重新寫入到request裏

最近在使用spring security框架,發現一個問題,就是我通過request.getInputStream()方法讀取了請求體中的json數據後,就發現在controller控制器層中無法再次獲取到參數,會出現報錯 I/O err

原创 spring boot整合spring security(自定義驗證方式)

spring security支持傳統的查詢數據庫方式,也即根據用戶名查詢出用戶信息,然後再比較前端傳來的密碼和數據庫中的密碼。 這種方式很常用。但不適合通過第三方進行的授權認證模式。這時候,我們需要自己處理登錄驗證過程。 針對這些情況,

原创 Linux常用命令

cd /etc/sysconfig  # umount -vl /mnt/mymount/     執行延遲卸載  延遲卸載(lazy unmount)會立即卸載目錄樹裏的文件系統,等到設備不再繁忙時才清理所有相關資源。卸載可移動存儲介質

原创 Oracle常用命令和語句

1創建用戶    create user orcl_user_test identified by orcl_user_test;          --刪除用戶drop user orcl_user_test cascade; 2授予權