今天想跟各位分享如何透過 LightAdmin「快速建構」出一個具 CRUD 功能的資料管理平台。
本文將簡單示範 LightAdmin 的功能,目的是讓大家對 LightAdmin 有個初步的了解,對 Spring / JPA 有興趣的人千萬別錯過這篇心得!
前言
由 la-team 團隊所開發的 LightAdmin 是一個用於Java Web Application 的 UI library,目前版號為 1.2.0.RC1
。
而 LightAdmin 的優點很多,例如高度模組化的Configuration、RESTful,更具備進階 Search / Filter 和 Auto-Validate / ScopeFilter 等強大功能,對想節省自建後台成本的人來說是不可多得的利器!
尤其搭配上 Spring Boot 更能節省繁瑣的專案配置,LightAdmin 開發團隊甚至於 官網 首頁寫上:
The best match for Spring Boot powered applications!
可見 LightAdmin 十分適合與 spring-boot 結合,故本篇心得也將會使用 spring-boot 進行簡單示範。
Required
- IntelliJ idea / Eclipse or any IDE for Java EE
- MySQL or other DBMS
Getting Started
首先至 Github clone 下來,並打開 IDE 瀏覽一下專案吧!
先來檢查一下 maven,pom.xml
要設定的有:
- 定義 Repositories
- 設定 LightAdmin 的 Dependency,此處我們設定最新版本
1.2.0.RC1
其他細節可以先略過,並打開 src/main/java/org.lightadmin.boot/
目錄下的 LightAdminBootApplication.java
進行 Servlet 的設定。
如第47行的 servletContextInitializer()
中,可以設定你撰寫的 admin 程式所屬之 Package、後台 Url、Security 為 True 則代表後台需要登入驗證。
.basePackage("org.lightadmin.boot.administration")
.baseUrl("/my-admin")
.security(true)
.backToSiteUrl("http://trunk-studio.com/blog/");
在這次範例中,我設定了 baseUrl 為 my-admin,並將網址設定為創科資訊的 Blog。
Run and Have fun!
其實設定到這不過就花五分鐘而已,但其實 LightAdmin 已經幫我們把其他所有的事情都做好了,很神奇吧!來看看 LightAdmin 幫我們做了些什麼。哦對了!記得先啟動 MySQL Service。
現在,打開你的 Terminal (還是習慣自己下 Command 呀⋯),切換到專案根目錄,輸入:
mvn spring-boot:run
成功的話會看見 Spring Boot 的圖示、和最後 JVM Running 的訊息,若出現 Database alter error 可以先忽略。
是不是很興奮啊,趕快打開瀏覽器看一下我們的後台長什麼樣子吧:
localhost:8080/my-admin
Tips
- 預設帳密 admin / admin
- 網址後面接的 my-admin 是我前面設定的 baseUrl。
Clone 下來的專案已經幫我們設定了一些資料表,因此接下來,我們會參考它們並進行修改。
Customize
Data Admin 設定
於 administraion/
目錄
這邊需為每個 Entity 建立一個 Class,例如 City 的 Admin 就是 CityAdministration
。其他 Customization 設定像是 listView、AddView、EditView 等,也都在此進行設定。這次心得先簡單帶過,下次會詳細介紹其用法。
Data Model 設定
於 domain/
目錄
LightAdmin 基於 JPA-based 的 ORM,故了解 JPA / Hibernate 的人對其用法應該不難上手。
更進階如關聯設定,請參考 JPA 文件:
其他設定
import.sql
對資料庫進行 pre-queryapplication.properties
可在此設定 spring-boot 的各種屬性。如:- datasource 的 url、username、password、driver 等
- mysql 的 dialect
- hibernate 的 ddl-auto 方式,如
create
、create-drop
、update
- 詳細用法請參考 Spring Boot Docs
users.properties
設定管理員帳密,這邊使用SHA1進行密碼的加密。
LightAdmin 的限制
la-team 在官網提到:
currently LightAdmin can only be used with JPA based applications.
雖然目前 LightAdmin 只支援 JPA-based,但只要資料庫的設計遵循著某些 ORM 的原則,LightAdmin 也是能搭配其他語言或框架的。
評價與總結
LightAdmin 還是個年輕待開發的潛力股,相較於自己開發 CRUD 後台,LightAdmin 是一個非常值得考慮的替代方案。但官網的文件寫的較粗且不夠友善,是我覺得可惜之處。
由於目前在用 LightAdmin 的人並不多,希望透過這個心得達到拋磚引玉的效果,引起更多人的關注,以增加討論的活耀度。LightAdmin 還有很多更強大的功能我尚未介紹,未來也繼續撰寫心得分享。
最後,感謝耐心看完的每一個人,若有問題非常歡迎提出討論,謝謝大家!