本篇介紹使用command line指令來操作Liquibase產生changelog,執行update及rollback。可先參考學習Liquibase。
2018/3/30
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
2018/3/26
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的空間。
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得好像更多,要調查一下該往哪個技能樹點了。
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)。
驗證(Authentication)與授權(Authorization)的區別
Authentication vs Authorization
Authentication和Authorization的區別如下。
Spring Security 什麼是Principal
Spring Security中常看到Principal這個字。Principle是指一個存取系統資源的實體(Entity),簡單來說就是登入的使用者。
2018/3/12
Spring Security No bean named 'springSecurityFilterChain' available 錯誤
如要透過xml配置檔來使用Spring Security,則第一步是在web.xml
加入下面的filter
2018/3/11
Spring MVC配置檔載入流程
今天突然對Spring MVC在web.xml
中DispatcherServlet
的<servlet-name>
和Spring MVC設定檔的名稱及位置是怎麼決定的,所以跑去看原始碼,下面是今天看了一整天大概了解的流程,在此紀錄一下。
但找了半天還是找不到contextConfigLocation
是在哪個地方被設定為Spring MVC配置檔的路徑?
2018/3/9
2018/3/8
Spring MVC @RestController與@Controller的區別
從Spring MVC 4.0的多了@RestController
,與傳統@Controller
的差別其實只是@RestController
等於@Controller
搭配@ResponseBody
。
Java StackOverFlowError的發生原因
當JVM(Java Virtual Machine)執行thread時所消耗的stack記憶體超過上限時,便會發生StackOverFlowError
錯誤。
2018/3/7
HTTP Basic 與 HTTP Digest 驗證的差別
HTTP Basic與HTTP 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發現新匯入的專案名稱與既有的重複所以無法匯入。
2018/3/6
2018/3/5
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,例如有三個要被測試的類別分別為TestCaseA
,TestCaseB
,TestCaseC
,若要一次執行這三個Test Case,可利用Suite類別來達成。
什麼是單元測試(Unit Test)
單元測試(Unit Test)用來檢查一個獨立工作單位的行為,在Java應用程式中這個獨立的工作單位通常是一個方法(Method)。單元測試用來確認一個方法在接收特定的輸入後是否會得到預期的輸出。相對於單元測試,整合測試(Integration Test)是指檢查數個元件之間的互動。
2018/3/3
2018/3/2
Eclipse STS 建立Spring Boot專案
使用Eclipse安裝STS plug-in來建立Spring Boot專案。或是你可以直接安裝Spring Tool Suite(STS) IDE來建立spring boot專案。