[前端學java01-SpringBoot實戰] 環境配置和HelloWorld服務

導航

[react] Hooks

[React 從零實踐01-后臺] 代碼分割
[React 從零實踐02-后臺] 權限控制
[React 從零實踐03-后臺] 自定義hooks
[React 從零實踐04-后臺] docker-compose 部署react+egg+nginx+mysql
[React 從零實踐05-后臺] Gitlab-CI使用Docker自動化部署

[源碼-webpack01-前置知識] AST抽象語法樹
[源碼-webpack02-前置知識] Tapable
[源碼-webpack03] 手寫webpack - compiler簡單編譯流程
[源碼] Redux React-Redux01
[源碼] axios
[源碼] vuex
[源碼-vue01] data響應式 和 初始化渲染
[源碼-vue02] computed 響應式 - 初始化,訪問,更新過程
[源碼-vue03] watch 偵聽屬性 - 初始化和更新
[源碼-vue04] Vue.set 和 vm.$set
[源碼-vue05] Vue.extend

[源碼-vue06] Vue.nextTick 和 vm.$nextTick
[部署01] Nginx
[部署02] Docker 部署vue項目
[部署03] gitlab-CI

[數據結構和算法01] 二分查找和排序

[深入01] 執行上下文
[深入02] 原型鏈
[深入03] 繼承
[深入04] 事件循環
[深入05] 柯里化 偏函數 函數記憶
[深入06] 隱式轉換 和 運算符
[深入07] 瀏覽器緩存機制(http緩存機制)
[深入08] 前端安全
[深入09] 深淺拷貝
[深入10] Debounce Throttle
[深入11] 前端路由
[深入12] 前端模塊化
[深入13] 觀察者模式 發布訂閱模式 雙向數據綁定
[深入14] canvas
[深入15] webSocket
[深入16] webpack
[深入17] http 和 https
[深入18] CSS-interview
[深入19] 手寫Promise
[深入20] 手寫函數
[深入21] 數據結構和算法 - 二分查找和排序
[深入22] js和v8垃圾回收機制
[深入23] JS設計模式 - 代理,策略,單例

[前端學java01-SpringBoot實戰] 環境配置和HelloWorld服務
[前端學java02-SpringBoot實戰] mybatis + mysql 實現歌曲增刪改查

(一) 前置知識

(1) 一些單詞

legal 法律
profile 配置文件
paste 粘貼

(2) IDEA如何自動的導入需要的注解?

  • setting -> 搜索 auto import
    image

(3) IDEA如何新建一個文件夾,然后在改文件夾中創建一個class?

image

(二) 環境配置

(1) 安裝及教程相關連接

(2) 注意事項

  • JDK8相關
    • java8安裝完成后,需要配置 ( 環境變量 ) 和 ( Path )
      • java8-JDK8的環境變量配置
        • 我的電腦 => 高級系統設置 => 高級 => 環境變量 => 系統變量 => 新建 => JAVA_HOME
        • 變量名:JAVA_HOME
        • 變量值:bin文件夾所在的全路徑 比如 C:\Program Files\Java\jdk1.8.0_211
      • jva8-JDK8的Path配置
        • 我的電腦 => 高級系統設置 => 高級 => 環境變量 => 系統變量 => path => %JAVA_HOME%\bin
      • 如何測試java8的環境變量安裝成功?如何驗證path
        • cmd 中輸入 java -version 獲取到相關信息即安裝成功
        • cmd 中輸入 echo %JAVA_HOME% 查看環境變量的Path
  • maven相關
    • 配置修改
      • 下載解壓后需要配置maven,即修改 D:\javaconfig\apache-maven-3.6.3\conf\setings.xml 文件
      • 具體修改三個地方
        • <localRepository></localRepository>
          • 本地倉庫,設置為自己本地的文件夾中,這樣本地有jar包時就不用每次去下載
          • maven項目創建好后,需要jar包,先從本地倉庫找,沒找到再去中央倉庫或私服中去下載
        • <mirrors><mirror></mirror></mirrors>
          • 鏡像
          • 配置國內鏡像,加快下載速度
        • <profiles><profile></profile></profiles>
          • 讓maven指定jdk1.8來進行編譯
    • maven環境變量設置
      • 變量名:M2_HOME
      • 變量值:bin文件夾所在的全路徑 比如 D:\javaconfig\apache-maven-3.6.3
    • maven的Path設置
      • 我的電腦 => 高級系統設置 => 高級 => 環境變量 => 系統變量 => path => %M2_HOME%\bin
    • 驗證maven是否配置成功
      • cmd 中輸入 mvn -version
      • cmd 中輸入 echo %M2_HOME%
  • IDEA上設置maven相關如下圖
    image
maven setings.xml
------


<localRepository>D:/javaconfig/m2/repos</localRepository>

<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

<profiles>
  <profile>
    <id>jdk-1.8</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
    </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>
  • java


    image
  • maven


    image

(三) 實現一個hello-world

  • 瀏覽器發送get請求,服務器響應 'helloworld' 字符串
  • 官方文檔

(1) 在 ( pom.xml ) 配置文件中添加 ( parent ) 和 ( dependencies )

  • parent:作用是做依賴管理,父項目中聲明了常用的依賴的版本號,子項目繼承后就不需要寫 ( 依賴的版本號 ) 了
  • 如何修改依賴指定的版本號
    • 1.查看parent => spring-boot-starter-parent => spring-boot-dependencies 中的當前依賴的版本號的 key
    • 2.在當前項目中重寫配置,需要添加<properties>然后通過<mysql.version>來修改 指定的版本號
    • 3.因為maven采用的是就近優先的原則
  • starter場景啟動器
    • starter 就是 場景啟動器
    • 只要引入starter,這個場景的所有常規需要的依賴都會自動引入
    • 官方starter spring-boot-starter-*
    • 第三方starter *-spring-boot-starter
    • 官方的starter文檔
<parent> 
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.2</version>
</parent>
// parent
// 1 
// parent是父項目,固定寫法
// parent的作用是:做依賴管理,父項目中聲明幾乎所有常用的依賴的版本號,子項目繼承后就不需要寫 ( 依賴的版本號 ) 了
// 2
// 問題:如果對parent仲裁的版本不滿意,如果制定依賴的版本號?
// 答案:自己聲明一個<properties>然后通過<mysql.version>來修改指定的版本號
// <properties><mysql.version>5.1.3</mysql.version></properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId> // spring-boot-starter-web
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>2.4.2</version>
    </dependency>
</dependencies>

(2) 就是編寫 HelloController 類

  • @getMapping 和 @requestMapping 的區別?
    • @GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫
    • @RequestMapping可以指定GET、POST請求方式
    • @GetMapping等價于@RequestMapping的GET請求方式
@RestController // 是上面兩個注解的合集
public class HelloController {

    // @RequestMapping("/hello") 隱射請求
    @RequestMapping(path="/hello", method = {RequestMethod.GET})
    public String getHello() {
        return "hello request success";
    }
    
}

(3) 編譯測試,點擊 main 方法的run按鈕進行編譯

  • 編譯成功會看到服務端口等信息
  • 可以通過瀏覽器訪問測試 http://localhost:8080/hello
    image

(四) SpringBoot配置文件 application.properties

  • 配置文件 application.properties
    • main 文件夾下創建 resources 文件夾,再在resources下創建 application.properties 文件
    • application.propertiesapplication.yml 都可以
  • 修改端口
    • server.port = 8888
  • 官方文檔 - 配置文件 - application.properties
application.properties文件
-------

server.port = 8888

(五) 打包部署 fat jars

  • 1.在 pom.xml 中添加 build
  • 2.點擊IDEA右邊的 Maven => hello-world => LifeCycle => clean and package => run
  • 3.打包完成后,鼠標右鍵,open in explorer 在資源管理器中打開
  • 4.在cmd中執行 java -jar hello-world-1.0-SNAPSHOT.jar
maven插件
-------

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

image

image

(六) 自動配置

  • SpringBoot自動配好了 SpringMVC 依賴
  • SpringBoot自動配好了 Tomcat 依賴
  • SpringBoot自動配好了 web常見的功能,比如字符編碼等
  • 按需加載所有自動配置項
    • 引入了哪些場景,這些場景的自動配置才會開啟
    • SpringBoot所有的自動配置功能都在 spring-boot-autoconfigure 包里
  • 默認的包結構
    • ( 主程序所在的包 ) 及其下面的 ( 所有子包 ) 里的組件都會被默認 ( 掃描進來 )
  • 那如果就要放在主程序所在包的外面,怎么辦? - 即改變掃描路徑
    • 在主程序的注解上加上@SpringBootApplication(scanBasePackages = "java.com") 參數路徑
      image

      image



2021/05/04更新

mac上java的相關設置

(一) jdk8 相關設置

(1) 下載 jdk8

  • 下載地址
  • 選擇 - Java SE Development Kit 8u291 - macOS x64


    image.png

(2) 查看和設置 JAVA_HOME

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

查看和設置 JAVA_HOME 

(1) 在cmd中輸入一下命令
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

(2) 驗證 JAVA_HOME 是否設置成功
echo $JAVA_HOME

(3) 查看 java 版本
java -version

(4) 相關教程
https://www.cnblogs.com/godtrue/p/12479919.html
image.png

image.png

(二) maven 相關設置

(1) 下載 Maven3.3+

  • 下載地址
  • 選擇 download - Binary tar.gz archive - apache-maven-3.8.1-bin.tar.gz
image.png
image.png

(2) 配置 Maven3.3+

配置  Maven3.3+ 


(1) 修改maven配置文件 settings.xml
- 文件路徑: /Users/admin/back_end/java/apache-maven-3.8.1/conf/settings.xml 
- 具體修改三個地方
  - 1
    <localRepository></localRepository>
    本地倉庫,設置為自己本地的文件夾,這樣本地有jar包時就不用每次去下載
    maven項目創建好后,需要jar包,先從本地倉庫找,沒找到再去中央倉庫或私服中去下載
  - 2
    <mirrors><mirror></mirror></mirrors>
    鏡像
    配置國內鏡像,加快下載速度
  - 3
    <profiles><profile></profile></profiles>
    讓maven指定jdk1.8來進行編譯
- 具體內容如下
<localRepository>
    /Users/admin/back_end/java/javaconfig/m2/repos
</localRepository>
<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>
<profiles>
  <profile>
    <id>jdk-1.8</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
    </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>



(2) 設置maven相關的環境變量
- 1. cmd中輸入 vim ~/.bash_profile ,輸入 i 進入編輯模式
- 2. 添加如下配置
export MAVEN_HOME=/Users/admin/back_end/java/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin
- 3. 輸入 :wq 退出并保存當前文件
- 4. 輸入命令:source .bash_profile
- 5. mvn -v



(3) idea上的maven設置
- 需要設置
- Maven home path ------- 是maven下載解壓后的文件路徑
  - /Users/admin/back_end/java/apache-maven-3.8.1
- user setting file ----- 是maven的配置文件路徑,需要修改 localRepository,mirror,profile 等
  - /Users/admin/back_end/java/apache-maven-3.8.1/conf/settings.xml
- Local repository ------ 是本地倉庫文件夾路徑,將jar包存在本地
  - /Users/admin/back_end/java/javaconfig/m2/repos
image.png

image.png

image.png

(3) 新建一個maven項目

    1. file - new - project
    1. project sdk 一定要選擇1.8
    1. next
    1. 輸入name 和 location 后點擊 finish
    1. 點擊 src/main/java 然后會彈出一個對話框
    1. 注意不建議直接這樣新建maven項目,而是通過插件 Spring Assistant 來新建
      image.png

      image.png

項目源碼

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容