來認識一下venus-init——一個讓你僅需一個命令開始Java開發的命令列工具
原始碼地址: Github倉庫地址
個人網站:個人網站地址
前言
不知道你是否有過這樣的經歷。不管你是什麼崗位,前端也好,後端也罷,想去了解一下Java開發到底是什麼樣的,它是不是真的跟傳說中的一樣。
於是你拿起鍵盤,用觸控板 ? '' : 抄起滑鼠
',開始了Java淌坑之旅。在一把梭的操作之後,面對你搭建的環境,你陷入了深深的沉思,開始了吾日三省吾身的自我質疑中。這tm到底哪兒錯了?到底哪兒在報錯?這報錯啥意思?
經歷了吾日三省吾身的深思之後,你把滑鼠移動到了MacOS ? 左上角' : '右上角'
,然後雙手離開了鍵盤放棄了操作。嗯,剛剛什麼都沒有發生。
如果你有類似的經歷(如果沒有請給Java一個面子假裝你有過),那麼就來認識一下venus-init吧。
venus-init
它是什麼
venus-init
是一個基於Node.js的命令列工具。使用venus-init
,只需要一個命令,然後輸入兩個引數,就可以建立一個簡單的Spring Boot應用。並且初始化的demo專案中還會有一個名叫Hello的模組來幫助你更好的理解這個專案。
在我還沒有更新文件的情況下,npm上週下載量就突破了1000,不管是因為什麼原因,下錯了也好,覺得好用也好。感謝大佬們的支援。
如何使用
怎麼做呢?"He can do that with a snap of his fing..." 走錯了片場不好意思。首先你需要使用npm install venus-init
venus init
# you can also do it like this
venus i
只要輸入這樣一個命令,然後跟隨命令列工具的指導,完成建立就ok了。
建立專案之後
完成上述步驟之後,就會發現在鍵入命令列的目錄下,多個一個具有這樣結構的目錄。(這是我自己建立的demo專案,group和artifact都可以自己指定)
. ├── LICENSE ├── README.md ├── api │ ├── pom.xml │ └── src │ └── main │ ├── java │ │ └── com │ │ └── detectivehlh │ │ └── demo │ │ └── api │ │ ├── Application.java │ │ ├── config │ │ │ ├── DbConfig.java │ │ │ └── SwaggerConfig.java │ │ ├── controller │ │ │ └── HelloController.java │ │ ├── dao │ │ │ └── HelloMapper.java │ │ ├── dto │ │ │ └── HelloDTO.java │ │ ├── entity │ │ │ └── Hello.java │ │ └── service │ │ ├── HelloService.java │ │ └── impl │ │ └── HelloServiceImpl.java │ └── resources │ ├── application.yml │ └── mapper │ └── HelloMapper.xml └── pom.xml
其中我內建了一個Hello的模組供大家參考,通過這個模組相信大家可以更加快的熟悉整個專案。整個專案的結構非常的清晰明瞭。
總共有6個包,config用於存放各種配置,像swagger的配置就放在這個包下面。
controller包是各種模組的控制層,裡面包含了專案所有的api。
dao中存放了各個模組和資料庫互動的mapper,值得注意的是,dao下只定義了介面,具體的sql則是放在了resources/mapper下。
dto中則是存放了與前端互動的資料結構。簡單理解一下,資料庫存放的資料並不是前端需要的資料,所以在查到資料之後需要對資料進行一次轉換,再把轉換好的資料返回給前端。
entity則是存放了與資料庫互動的資料結構。通常情況下是與資料庫的欄位一一對應的。
service包是各個模組的核心程式碼所處的為主。大量的業務都會在這個包下。
Application則是專案的啟動檔案。
resources下的application.yml則是整個專案的配置檔案。可以在這裡配置專案的名稱,資料庫的配置,以及mybatis的配置,redis的配置等等。
啟動專案
建議使用IDEA來開啟這個專案,然後右鍵移動到Application上,選擇Run Application
即可看到應用執行在8080埠。
接下來,你只需要訪問http://localhost:8080/hello,如果看到頁面返回瞭如下資訊,那麼恭喜你,專案已經成功的啟動了。
{
"message": "Hello world",
"createdAt": "current_timestamp"
}
檢視專案的介面文件
使用venus-init
初始化建立的專案會預設啟用swagger文件,這是一個不需要你手寫的api文件。swagger基於註解。只要你在對於的controller中寫上了對應的註解,swagger就會自動的幫你生成API文件。
在專案成功的啟動之後,你只需訪問[http://localhost:8080/swagger-ui.html就可以看到自己的專案中有哪些介面,每個介面需要什麼引數了以及介面的返回值是什麼了。
如何連線資料庫
初始化的專案同樣也支援mysql的jdbc連線,同時在Hello模組中也實現的例子。
資料庫資訊
假設你有一個MySQL資料庫,名字叫demo
,地址是localhost
,埠是3306
,使用者名稱和密碼都是root,那麼你需要在application.yml
中找到資料庫配置,將db_name
換成你自己的資料庫名也就是demo
。然後重新啟動專案,就可以直接連上你的資料庫了。
如果你需要修改mysql的表名,則需要到HelloMapper.xml
中,找到如下段落。
<sql id="tableName">
test
</sql>
test
是我們專案初始化時使用的表名,你可以將其換成自己的資料庫表名,同理,如果你要換資料庫的名字,只需要將上述的db_name
換成自己的資料庫名即可。
資料庫表資訊
假設在demo中有一張表叫test,結構如下。
column_name | column_value |
---|---|
id | 使用者id |
name | 使用者名稱 |
並且有了資料
column_name | column_value |
---|---|
id | name |
1 | detectiveHLH |
這個結構也是初始化模組Hello的表結構,所以你只要按照這個結構準備一張同樣結構的表即可。
修改HelloServiceImpl
如果你已經成功的連線上了資料庫,並且有了相應的表結構和資料。那麼你需要把HelloServiceImpl
中的註釋的兩行取消註釋即可。然後重啟專案,再次訪問http://localhost:8080/hello即可看到控制檯打印出了從資料查詢到的資訊。
到此,你就已經成功的打通了資料了。
最後
如果你在使用中遇到了任何的問題,歡迎提Issue