源代碼地址: 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。