網頁

2020/4/30

Maven WARNING Using platform encoding to copy filtered resources

在maven build時出現下面警告:
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

IntelliJ IDEA Maven 打包可執行的jar檔 package executable jar

在IntelliJ使用maven將專案打包成可執行的jar的方法如下。

求得小於n且為3或5的倍數的不重複數的總和

今天和同事聊天,他說最近他的女朋友在面試時被問到「給定一個值n,請求所有小於n且為3或5的不重複倍數的總和」。

2020/4/29

I Mean Us - You So

今天老婆放kkbox的什麼放鬆音樂主題之類的無意中聽到開頭20秒,就覺得這肯定是首我愛的歌,趕快叫老婆看歌名。果然,屌炸的歌,到現在快臨晨1點已經聽了20遍了,這首歌接下來應該會連續聽一個月到膩炸為止。

Youtube - I Mean Us - You So (Youth Soul) [Official Music Video]

2020/4/28

MacOS 終端機建立.gitignore檔 terminal create .gitignore file

在MacOS 終端機(terminal)建立.gitignore的方式如下。

EMV® 3-D Secure 驗證協定的ECI是什麼

3DS驗證協定的Electronic Commerce Indicator (ECI)是信用卡組織(VISA、MasterCard、JCB、American Express等)的目錄伺服器(Directory Servers)回傳的值,用來表示交易時的3DS驗證結果。不同卡組織的定義不同。

Java 什麼是 fat jar or uber jar

fat jar又稱uber jar,是一個包含其他依賴jar的jar。

2020/4/27

IntelliJ IDEA Gradle 安裝 Lombok

在IntelliJ IDEA Gradle專案使用Lombok的方法如下。

IntelliJ IDEA Gradle 打包可執行的jar檔 build executable jar

IntelliJ IDEA Gradle打包可執行的jar檔方式如下:

Git 暫存未追蹤的檔案 stash untracked files

Git 暫存未追蹤的檔案(stash untracked file)的方式如下。

Jaskson 使用 @JsonPropertyOrder 設定物件轉json順序

使用Jackson將Java物件轉為json字串時,可用@JsonPropertyOrder確保轉出的json字串的順序。

2020/4/26

如何吃整支玉米

活到今天才知道啃整支玉米的正確方式。

Spring Security 簡單角色權限範例

本篇使用Spring Security搭配Basic Authentication驗證,簡單的使用者角色(role)權限與JSR-250 @RoleAllowed來做REST API的存取限制。

2020/4/25

Java 抽像類別(Abstract Class)與介面(Interface)的差異

Java 抽像類別(Abstract Class)與介面(Interface)的差異如下。

Spring Boot 依環境設定不同的properties檔 Use different application.properties

通常開發、測試及發布環境使用的各種properties參數不同,因此application.properties需依環境設定不同參數,而Spring Profile能依不同環境切換讀取的application.properties

2020 天脈科技 smartbee 面試

Hunter介紹的公司(這位Hunter很認真),要先完成這作業才有後續的面試。

2020/4/23

Oracle 建立與另個資料表有相同欄位的資料表

Oracle若要建立與另一資料表有相同欄位設定的資料表時可使用以下。

2020/4/22

高流量網站系統架構設計工具 High Performance Web Architecture Tools

表列一下高流量網站系統架構設計上可應用的工具。

2020/4/21

2020 4月 目前工作用的技術及工具

表列一下目前工作每天用的技術與工具。

2020/4/19

Spring Security role hierarchy Java config

以下是Spring Security角色權限階層(role hierarchy)的Java配置範例。

2020/4/18

Git pull refusing to merge unrelated histories

今天在git pull時,發生fatal: refusing to merge unrelated histories,解決方式如下。

2020/4/16

Java 取得JDBC資料型態名稱 get JDBC datatype name

Java 取得JDBC sql資料型態名稱的方式如下。

Oracle SID與SERVICE_NAME的區別

在設定Oracle資料庫連線時,在設定檔tnsnames.ora中常看到SIDSERVICE_NAME兩種方式,兩者的差別如下。

Oracle 查詢外鍵相依階層 find foreign key dependency hierarchy

Oracle 查詢資料表間外鍵相依的階層方法如下。

Oracle 查詢外鍵依賴 find foreign key constraints

Oracle查詢schema的全資料表的外鍵限制(foreign key constraints)的方法如下。

2020/4/15

Spring JDBC SQLException Invalid column name錯誤

今天在Spring Data JPA使用JdbcTemplate查詢Oracle資料庫時,出現java.sql.SQLException: Invalid column name錯誤。

2020/4/14

Spring Boot datasource config jdbcUrl is required with driverClassName錯誤

今天在設定Spring Boot JDBC多資料庫的datasource配置時,啟動時發生jdbcUrl is required with driverClassName錯誤如下。

2020/4/13

Oracle 建立遠端資料庫連線 Create Database Links

Oracle 的Database Link讓我們可以在目前的資料庫直接存取遠端資料庫,建立database link方式如下。

2020/4/12

Java 使用 try-with-resources 關閉資源

Java 繼承Closeable介面的類別在操作結束時都應該呼叫close()關閉資源,在Java 7新增了try-with-resources語法,使得關閉資源的程式變得簡潔許多。

2020/4/11

Angular HttpClient 錯誤處理 error handling

Angular HttpClient呼叫Spring Boot RESTful API發生錯誤的處理。

Lombok 使用@SuperBuilder產生繼承類別的Builder

在子類別使用Lombok @SuperBuilder產生可建構父類別屬性的Builder。

Angular HttpClient呼叫Spring Boot RESTful API

在Angular使用HttpClient呼叫Spring Boot RESTful API取得資料。

Maven Apache Maven Compiler Plugin

在Java Maven專案的pom.xml常看到下面的設定。

Angular Template-driven Forms validation 表單提交及驗證

Angular Template-driven form 表單提交及驗證範例。

HTTP Status Code 201 Created

HTTP 回應狀態碼201 Created用來表示請求成功並已建立新的資源,並在Response Header的Location欄位放入導向新資源的URL路徑。

2020/4/10

Spring Boot javax.servlet.http.HttpServletRequest ClassNotFoundException

在Spring Boot Web MVC專案中想取得HttpServletRequest時發現此類別並不存在。

Angular CanActivate limit Route path

Angular CanActivate限制Route.path存取Component的範例。

MongoDB mongorestore import dump file

在Windows如何以mongorestore來匯入MongoDB dump檔案。

Spring Boot Security CSRF Session timeouts custom AccessDeniedHandler

Spring Boot Security 因Session連線過期(session timeout)而導致CSRF驗證失敗的自訂拒絕存取的處理方法如下。

Angular 屬性綁定(Property binding)範例

Angular屬性綁定(Property binding)的簡單範例。

Floyd Cycle Detection Algorithm 龜兔賽跑算法

Floyd Cycle Detection Algorithm(Floyd判圈算法),又稱Tortoise and Hare Algorithm(龜兔賽跑算法),此演算法可用來判斷LinkedList(鏈接串列)或是否存在cycle(環),並找出環的起始節點及算出cycle的長度。

Spring Security 自訂拒絕存取處理器 custom AccessDeniedHandler

Spring Boot Security自訂拒絕存取處理器的方式如下。

Spring Boot 2.1.x JUnit 4 @MockBean example

Spring Boot 2.1.x 使用JUnit 4及@MockBean做stubbing測試類簡單範例。

Angular 使用Angular CLI建立Service

使用Angular CLI建立Service的方法如下。

Spring Boot 自訂Controller請求參數Bean Validation

本篇介紹如何在Spring Boot使用自訂Java Bean Validation驗證器(custom Java Bean validation)對Controller的請求物件欄位(field)進行格式驗證。

HTTP Basic Authentication 簡介

本篇介紹什麼是HTTP基本認證(HTTP Basic Authentication)。

Windows 10 Chrome Facebook畫面閃爍

家中的Windows 10筆電用Chrome瀏覽器開啟Facebook時畫面都會不斷的閃爍,解決方式如下。

Windows Chrome DNS_PROBE_FINISHED_NXDOMAIN 無法上網

今天因為家裡的中華電信網路忘了繳費被停了,所以筆電改用iPhone的手機熱點來上網,但在Windows 7用Chrome瀏覽器上網時除了Google,Youtube的和少部分網站可以正常連線外,多數網站都無法正常連線並提示DNS_PROBE_FINISHED_NXDOMAIN的錯誤訊息。

Spring Boot server session timeout連線到期時間設定

Spring Boot 設定內置Server Session連線時間到期(Session Timeout)的方法如下。

Spring Boot Test TestRestTemplate測試GET, POST範例

Spring Boot Test使用TestRestTemplate測試GETPOST RESTful API範例如下。

Angular 使用Session Storage登入登出簡單範例

Angular使用Session Storage來做簡單的登入登出範例。

Spring Boot Test 取得測試web環境的port號

在Spring Boot Test測試程式可使用@LocalServerPort取得測試的web應用程式的port號。

Spring Boot Test @SpringBootTest的作用

在Spring Boot專案撰寫單元測試(Unit Test)時要在測試類別前加上@SpringBootTest注釋,例如下面是被測試的Controller類別。

WordPress <br> 沒有作用

今天發現就算在WordPress(版本為5.3.2–zh_TW)的HTML編輯器使用<br>也不會有斷行效果,因為WordPress在渲染原始HTML內容會過濾掉<br>

Oracle CURRENT_TIMESTAMP 與 SYSTIMESTAMP 區別

在Oracle PL/SQL 可以用CURRENT_TIMESTAMPSYSTIMESTAMP取得現在日期時間。兩者差別如下。

TypeScript 宣告數值變數 declare Number variables

TypeScript宣告數值變數的語法let <variable_name>: number

Angular 加法計算頁面簡單範例

本範例介紹如何使用Angular寫一個簡單的加法計算頁面。

Spring Security CSRF防護 CsrfFilter原始碼解析

Spring Security (5.2.1.RELEASE) CSRF防護驗證原始碼解析。

Spring Boot Security 取得登入者名稱 get login username

Spring Boot Security應用程式取得登入者名稱的方式如下。

Spring AOP對Spring Security logout做切點

使用Spring AOP對Spring Security logout做切點的方式如下。

Spring Boot 讀取resources目錄的圖檔為byte[]

在Spring Boot專案中,讀取src/main/resources目錄中的圖檔為bytes[]的方法如下。

Spring Boot + JUnit 5 使用 MockMvc 測試 RestController API

Sprinb Boot 使用JUnit 5搭配Spring MockMvc測試RestController API範例。


Spring Data JPA Query Method 方法名稱查詢範例

Spring Data JPA Query Method的用法範例如下。

Java 8 ZoneId列表

Java 8 ZoneId.getAvailableZoneIds()取得區域ID(ZONE ID)列表如下。

2020/4/9

Oracle select BLOB column as CHAR

Orale 查詢BLOB欄位為字串的方式如下。

2020/4/7

Oracle 取得使用者全部的table及column名稱

Oracle 取得目前使用者下所有的table及column名稱的方式如下。

Java Map sorting 排序

Java的Map的排序方式如下。

2020/4/6

Java write out file Mac OS

Java 在Mac OS中把檔案寫出到本機資料夾的方法如下。

Spring @Transactional default rollbackFor

Spring @Transactional 能掛在類別或方法前來管理交易,預設觸發rollback的機制如下。

Effective Java 3e - Item 19: Design and document for inheritance or else prohibit it 筆記

Effective Java 3e - Item 19: Design and document for inheritance or else prohibit it 繼承的設計與文件說明或禁止繼承 筆記。

2020/4/4

Java convert InputStream to String

Java 把InputStream轉換成String的方法如下

Effective Java 3e - Item 18: Favor composition over inheritance 筆記

Effective Java 3e - Item 18: Favor composition over inheritance 組合優於繼承 筆記。

2020/4/3

Java 什麼是immutable class

Immutable class(不可變類別)的實例建構後即無法修改,物件生命週期間的狀態固定。

2020/4/2

Effective Java 3e - Item 16: In public classes, use accessor methods, not public fields 筆記

Effective Java 3e - Item 16: In public classes, use accessor methods, not public fields 公開類別使用存取方法而非公開成員變數 筆記。

Java 什麼是top-level class

top level class(頂級類別)是指不為nested class(巢狀類別)的類別。

Effective Java 3e - Item 15: Minimize the accessibility of classes and members 筆記

Effective Java 3e - Item 15: Minimize the accessibility of classes and members 最小化類別及成員的存取 筆記。

Java package-private class

Java頂級類別(top-level class)的存取修飾子有兩種,分別為public及private-package(無修飾子)。

2020/4/1

Spring JDBC MapSqlParameterSource

當使用Spring JDBC的NamedParameterJdbcTemplate執行SQL操作時,其提供的方法除了可用Map<String, ?>帶入參數,也可改用SqlParameterSource的實作類別MapSqlParameterSource