5 days ago

首先用 PuTTYgen Release 0.70 來產生公私鑰
有需要就從這邊下載 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Read on →
 
27 days ago

這幾天 MySQL 出 8 的版本,
沒想到密碼儲存方式變更了, 頓時一堆人慘叫XD

因為 之前 MySQL 預設儲存密碼的方式是 mysql_native_password, 但 8.0 之後 預設的儲存方式為 caching_sha2_password, 說是又快又安全啦, 但讓人措手不及, 一堆 SQL 工具 (Navicat) 可能還來不及更新支援 就...

登入失敗!!

Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found

方法1 : 就升級上去吧, 變更 JDBC 連結方式
1.首先更新你的 JDBC 驅動 runtime 'mysql:mysql-connector-java:8.0.11'
2.修改你的 driver-class-name , 因為 Loading class `com.mysql.jdbc.Driver'. This is deprecated. , 請你換成新版的 com.mysql.cj.jdbc.Driver
3.JDBC URL 增加參數 allowPublicKeyRetrieval=true

完成, 這樣你的 JDBC 就可以搭配使用上 caching_sha2_password 的機制了

方法2 : 我要最新版但是不要用新的密碼機制
我是用 Docker 啦, 多個參數就可以正常使用了 --default-authentication-plugin=mysql_native_password

docker run --name askask-mysql -e MYSQL_DATABASE=askask -e MYSQL_ROOT_PASSWORD=1qaz2wsx -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password

收工

 
about 1 month ago

在 SpringBoot 1.x 時期 網路上 Google 會有各式各樣整合套件跟方法, 到了 2.0 官方就直接幫你整併進 actuator , 你唯一要做的事情就只有增加 Gradle 的配置就好了

Read on →
 
2 months ago

以前要 reverse engineering 來做 code generation 大概都會用 Hibernate Tools 來做

但是實在太囉唆啦....
又要依附在IDE 又要先設定 JDBC 又要建立專案 又要產生 XML 配置 還會生成 SessionFactory 但最後這些通通用不到....只留下要用的 Entity 而已.

自從用過 MyBatis Generator 可參考 mybatis 3 整合開發
整理來說就只需要產生器的相關 Jar 檔 跟一個 XML 配置檔, 就可以產生需要的 資料庫對應的 Entity , 而且別人有改動到表格的時候, 靠這個 XML 他就可以產生異動後的 Entity , 而不用搞上面那一堆配置, 這不是輕鬆很多嗎?

而且之後大概都會以 Spring Data Jpa 來操作為主, MyBatis 是不錯用, 但是 Spring Data 更方便啊!!!!!! 可以擴展成 Spring Data Rest 還可以再加上 HATEOAS 這種數據關聯性, 直接少寫一堆 Crud.

在尋尋覓覓之後, 終於找到就是它 JOOQ !! 喔!! 是 jOOQ's code generator 啦
我沒有要用 JOOQ...XD

Read on →
 
2 months ago

JobScope JobExecutionListener Tasklet

說明一下 怎麼使用這三個東西

JobScope 可跨 Step 做資料交換
JobScope 遇到 ThreadPool 的問題
JobExecutionListener 監控任務的結束
Tasklet 非批次動作

Read on →
 
2 months ago

批次作業如果要處理的比較好 其實有非常多細節還是要去處理 比如 排程執行的紀錄 資料輸入輸出的統計 每一個 任務的成功失敗 資料流...等等...到 Retry / Skip 的處理.

這邊開發時是使用 Spring Boot 1.5.9 所以搭配的是 Spring Batch 3.0.8 , 現在 SpringBoot 2 發佈出來了, 搭配的是 Spring Batch 4.0.0, 如果開新專案建議直接開 SpringBoot 2 來開發吧, 後面再整理一下 Spring Batch 4.0.0 的寫法.

介紹一下

基礎流程
編排 Job
編排 Step
撰寫 ItemReader
ItemReader on MultiThreading
ItemReader use JdbcPaging
撰寫 processor
撰寫 ItemWriter
撰寫 ItemWriter use Dto
processor 串接

Read on →
 
5 months ago

設定 JAVA_HOME

MAC 上 JAVA 安裝在哪?

zhushanglideAir:~ sam$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.8.0_152, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home

安裝 SpringBoot 插件
Spring Boot Java Support - Visual Studio Marketplace

執行 ^⌘

收工

 
6 months ago

OWASP Java 2017-02-19 Release 一版小更新 就順便把它加進來 SpringBoot 用來過濾 Json 中的非法字元。
非 Json 的自己每一個變數都要自己加

Read on →
 
6 months ago

Springboot 中的檔案上傳可以配置一個 檔案最大值,這個是全域共用的,所以當檔案大於這個最大值時,還沒進入 Controller 就被拒絕了,顯示的訊息是 Spring 預設的英文訊息......

Read on →
 
7 months ago

消費者驅動的契約測試(Consumer-Driven Contracts,簡稱CDC),是指從消費者業務實現的角度出發,驅動出契約,再基於契約,對提供者驗證的一種測試方式。

Read on →