歷史背景
J2EE笨重的開發,繁多的配置、低下的開發效率、復雜的部署流程,第三發技術集成難度大。
解決
“Spring全家桶”時代
Spring Boot -> J2EE一站式解決方案
Spring Cloud ->分布式整體解決方案
簡介
Spring Boot 來簡化Spring應用開發的一個框架,約定大于配置
Spring Boot 的底層用的就是Spring
Spring Boot可以輕松創建可以運行的獨立的,基于生產級Spring的應用程序。大大減少了Spring的手動配置
spring boot 它的設計目的就是為例簡化開發,開啟了各種自動裝配,開箱即用
使用Maven或Gradle構建工具
Java三大構建工具:Ant、Maven和Gradle
Maven
以林神的商城項目為例https://github.com/linlinjava/litemall
使用idea或vcode拉去代碼,按照github的快速啟動說明操作
一般后臺和后臺管理系統是必須的,先從這一部分開始
Spring Boot提供了一種超級簡單的部署方式,就是直接將應用打成jar包,在生產上只需要執行java -jar就可以運行了。
一般情況下,如果我們的應用只是作為一個服務、工具類、API的形式存在,那么我們一般將其打包成jar包。而如果我們的應用是一個Web應用,都是打成war包(上面所說的后臺管理web頁),進行發布,同時如果我們的服務器是Tomcat等輕量級服務器,一般都打成war包進行發布;
命令參數
上面列舉的只是比較通用的命令,其實很多命令都可以攜帶參數以執行更精準的任務。
Maven命令可攜帶的參數類型如下:
- -D 傳入屬性參數
比如命令:
mvn package -Dmaven.test.skip=true
以-D開頭,將maven.test.skip的值設為true,就是告訴maven打包的時候跳過單元測試。同理,mvn deploy-Dmaven.test.skip=true代表部署項目并跳過單元測試。 - -P 使用指定的Profile配置
比如項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,在pom.xml中的配置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<profile>
<id>pre</id>
<properties>
<env>pre</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
......
<build>
<filters>
<filter>config/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
......
</build>
profiles定義了各個環境的變量id,filters中定義了變量配置文件的地址,其中地址中的環境變量就是上面profile中定義的值,resources中是定義哪些目錄下的文件會被配置文件中定義的變量替換。
通過maven可以實現按不同環境進行打包部署,命令為:
mvn package -P dev
復制代碼其中dev為環境的變量id,代表使用Id為dev的profile。
- -e 顯示maven運行出錯的信息
- -o 離線執行命令,即不去遠程倉庫更新包
- -X 顯示maven允許的debug信息
- -U 強制去遠程更新snapshot的插件或依賴,默認每天只更新一次
Gradle
Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構工具。
它使用一種基于Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基于XML的各種繁瑣配置。
支持的語言有Java、Groovy和Scala
Gradle JVM 的富有突破性構建工具,可以通過編程式的編寫構建腳本,非 xml 的方式構建項目,適用于相對復雜 Java 項目構建。
特性:
- 對已有的 maven 和 ivy 倉庫的全面支持
- 支持傳遞性依賴管理,而不需要遠程倉庫或者 pom.xml 或者 ivy 配置文件
- ant 式的任務和構建是 gradle 的第一公民
- 基于 groovy,其 build 腳本使用 groovy dsl 編寫
下載安裝
驗證安裝
gradle -v
java.sql.SQLException: Access denied for user 'litemall'@'localhost' (using password: YES)
啟動小商場和管理后臺的后端服務
打開命令行,輸入以下命令
cd litemall
mvn install
mvn clean package
java -Dfile.encoding=UTF-8 -jar litemall-all/target/litemall-all-0.1.0-exec.jar
啟動管理后臺前端
打開命令行,輸入以下命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
cd litemall/litemall-admin
cnpm install
cnpm run dev
此時,瀏覽器打開,輸入網址http://localhost:9527, 此時進入管理后臺登錄頁面。