網頁

2018/3/30

Liquibase 使用command line操作

本篇介紹使用command line指令來操作Liquibase產生changelog,執行update及rollback。可先參考學習Liquibase

2018/3/28

MySQL 資料庫 email 欄位的VARCHAR長度

在設計資料表的時候,一定會有電子信箱email的欄位。因為email是由英文數字及特殊符號_-@.等組成,資料型態會設為VARCHAR,但email的長度該設多少呢?

ER-Model identifying relationships 與 non-identifying relationships的差別

今天用MySQL Workbench的EER Diagram正要畫ER-Model時,發現實體關係的連結線分成兩種,一種是實線(Identifying Relationships),另一種是虛線(Non-Identifying Relationships),兩者的區別如下。

2018/3/27

Spring Tomcat JNDI Datasource配置

Spring使用Tomcat JNDI Datasource的配置如下,連結的資料庫為MySQL 5,7。

2018/3/26

Sign up, Sign in, Log in, Register

註冊及登入的英文很多種,而Sign up和Sign in最常搞混。

學習Liquibase

最近專案可能會用到Liquibase,所以學習一下Liquibase是什麼。

2018/3/23

Eclipse 匯入Maven Web專案出現錯誤“Dynamic Web Module 3.1 requires Java 1.7 or newer”

情境是這樣,在Github有一個Maven Dynamic Web專案,透過Git Bash在Eclipse的workspace目錄下直接clone該專案,clone下來後接著在Eclipse import此目錄為[Maven Exsiting Maven Projects],然後在Eclipse的Markers頁籤出現Dynamic Web Module 3.1 requires Java 1.7 or newer錯誤,而且classpath如src/main/java不見了。解決方法如下。

使用JQuery.ajax()上傳檔案時加入進度條

在使用jQuery.ajax()非同步上傳檔案時,可以利用在xhr屬性中加入ProgrssEvent的監聽器來達成上傳進度條(progress bar)的效果。

在Windows 7的git專案中建立.gitignore檔

在Windows 7中因為建立檔案一定要有附檔名,所以當你想建立.gitignore因為沒有附檔名Windows不給你建立,但只要命名為.gitignore.,也就是後面多加一個.即可建立。

Git .gitignore 在Eclipse Java Maven專案中通常會忽略的檔案及路徑

通常用Git提交Eclipse中的Java Maven專案時,下面的檔案及路徑通常會新增.gitignore檔中來忽略追蹤。

2018/3/20

Spring Security 當進入登入頁面時,出現org.springframework.security.access.AccessDeniedException: Access is denied錯誤

在使用Spring Security時,我們通常會允許任何使用者可進入登入頁面(例如login.jsp),所以通常對/login.jsp的存取權限設定如下。

Windows 7 C槽空間快滿了

我的筆電C槽容量快不夠用了,明明沒裝什麼東西,但卻越來越肥。之前都透過Windows 7內建的磁碟清理工具來刪除不必要的暫存檔,但只能釋放一點點空間而已。

後來透過調整系統分頁檔,刪除hiberfil.sys休眠設定,調整系統保護功能使用的磁碟空間上限,刪除已建立的所有系統還原點,總算很有感的釋放了好幾GB的空間。

方法請參考Windows 7系統下硬碟空間清理的15個小技巧:關閉無用功能,刪除垃圾檔案

2018/3/19

Open JDK for Windows

今天在PTT Soft_Job板看到這篇關於Oracle JDK收費問題,有人提到有碰到被收費問題的公司全換成Zulu JDK。

nanashi07: 目前經歴過有被收費的公司,結果是全換 zulu jdk, 不 03/16 19:53
nanashi07: 給古文賺 03/16 19:53

好奇查了一下,Zulu JDK其實也是基於Open JDK,也是可以免費使用不會有收費的問題,而且Windows有安裝檔裝起來似乎很容易(沒試過)。

不過主要還是開始擔心越來越少人使用Java,那我的工作總有一天會不保,或是跳不動了。是開始要多放點心力在第二語言上(Java的都還沒學透)。之前學了一點Node.js,但台灣用C# .NET Core得好像更多,要調查一下該往哪個技能樹點了。

使用jQuery.ajax()上傳檔案至Spring MVC Controller

本篇介紹如何使用jQuery.ajax()來非同步上傳檔案至Spring MVC的Controller。

Spring MVC 上傳檔案 java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided

Spring MVC上傳檔案碰到下面錯誤。

java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided

2018/3/15

Spring Security <form-login> 屬性 login-processing-url

Spring Security的配置元素<form-login>的屬性login-processing-url是用來設定登入表單的action的登入路徑。

Spring MVC Controller搭配Spring Security @PreAuthorize

Spring MVC Controller的方法搭配Spring Security的@PreAuthorize控管存取權限設定如下。

2018/3/14

Spring MVC RESTful API 整合Spring Security及JWT

本篇要介紹如何在Spring MVC整合Spring Security透過JWT機制來存取RESTful API。

2018/3/13

Spring Security 什麼是Credential

根據Authentication.getCredentials()的說明,Credential(憑證)是指用來證明Principal身分的東西,通常是密碼(password)。

Spring Security 什麼是Principal

Spring Security中常看到Principal這個字。Principle是指一個存取系統資源的實體(Entity),簡單來說就是登入的使用者。

2018/3/12

Spring MVC整合Spring Security基本設定

本篇介紹Spring Security搭配Spring MVC的基本設定。

Spring Security No bean named 'springSecurityFilterChain' available 錯誤

如要透過xml配置檔來使用Spring Security,則第一步是在web.xml加入下面的filter

2018/3/11

Spring MVC配置檔載入流程

今天突然對Spring MVC在web.xmlDispatcherServlet<servlet-name>和Spring MVC設定檔的名稱及位置是怎麼決定的,所以跑去看原始碼,下面是今天看了一整天大概了解的流程,在此紀錄一下。

但找了半天還是找不到contextConfigLocation是在哪個地方被設定為Spring MVC配置檔的路徑?

2018/3/9

2018/3/8

在Eclipse使用Maven建立Web專案

在Eclipse使用Maven建立Web專案。

Spring MVC @RestController與@Controller的區別

從Spring MVC 4.0的多了@RestController,與傳統@Controller的差別其實只是@RestController等於@Controller搭配@ResponseBody

LINE 關閉Letter Sealing 2018年3月 版本8.3.0

每次使用LINE電腦版就因為這惱人的功能都要在手機輸入一次驗證碼,下面是關閉Letter Sealing的方法。

Java StackOverFlowError的發生原因

當JVM(Java Virtual Machine)執行thread時所消耗的stack記憶體超過上限時,便會發生StackOverFlowError錯誤。

2018/3/7

HTTP Basic 與 HTTP Digest 驗證的差別

HTTP BasicHTTP Digest的差異在於,HTTP Basic在傳送憑證(credential)時僅是用Base64編碼(Base64 encoding)來傳送,而HTTP Digest是用MD5加密。

在Eclipse匯入專案時出現Some projects cannot be imported because they already exist in the workspace錯誤無法匯入

在Eclipse如果匯入(import)專案時出現
Some projects cannot be imported because they already exist in the workspace
而無法匯入專案時,代表該專案已經存在Eclipse中了,Eclipse發現新匯入的專案名稱與既有的重複所以無法匯入。

如何在Eclipse將專案目錄匯入成專案

在Eclipse匯入既有的專案目錄方式如下。

使用Postman發送夾帶檔案的request

Postman發送url request時可以夾帶檔案,參考下圖。

2018/3/6

JUnit 4 搭配Mockito 2簡單範例

本篇介紹如何建立JUnit搭配Mockito的測試範例。

在Eclipse 建立一個簡單的Maven專案

在Eclipse建立一個簡單的Maven專案方式如下。

2018/3/5

2018-2020 軟體工程師約聘派遣人員的薪資計算

本篇分享的是軟體工程師的約聘派遣職缺(freelancer)的薪資計算,尤其是剛入行對此不熟悉的朋友。

JUnit @BeforeClass, @Before, @Test, @After, @AfterClass 執行順序

JUnit 4的@BeforeClass, @Before, @Test, @After, @AfterClass執行順序如下。

2018/3/4

JUnit 使用Test Suite來包裝多個Test Case

JUnit的Suite可用來組織你要執行的Test Case,例如有三個要被測試的類別分別為TestCaseATestCaseBTestCaseC,若要一次執行這三個Test Case,可利用Suite類別來達成。

JUnit 參數化測試(Parameterized Test)

在JUnit 4可使用參數化測試(Parameterized Test),也就是一個測試方法可重複測試多筆參數。

什麼是單元測試(Unit Test)

單元測試(Unit Test)用來檢查一個獨立工作單位的行為,在Java應用程式中這個獨立的工作單位通常是一個方法(Method)。單元測試用來確認一個方法在接收特定的輸入後是否會得到預期的輸出。相對於單元測試,整合測試(Integration Test)是指檢查數個元件之間的互動。

2018/3/3

Java 什麼是框架(Framework)

框架(Software Framework)是一種抽象程度高的半完成程式,框架本身無法自行運作,開發者必須將自己的程式搭配框架才是一個完整的應用程式。

測試 什麼是SUT與DOC,什麼是Test Double

SUT(System Under Test) 是指測試目標,就是要被測試的對象。

DOC(Depended-on Component),指的是SUT所依賴的程式或物件。

2018/3/2

Eclipse STS 建立Spring Boot專案

使用Eclipse安裝STS plug-in來建立Spring Boot專案。或是你可以直接安裝Spring Tool Suite(STS) IDE來建立spring boot專案

2018/3/1

Eclipse的一些基本設定

以下是我習慣Eclipse的一些環境設定,例如UTF-8編碼及編輯區格式等。

實測桃園火車站通勤到台北各地時間

以下是實測從桃園火車站通勤到台北市各地的時間,輕鬆的走路速度,搭電扶梯時不前進,總之是較保守的實測。