SpringBoot圖文教程「概念+案例 思維導圖」「基礎篇上」
有天上飛的概念,就要有落地的實現
概念+程式碼實現是本文的特點,教程將涵蓋完整的圖文教程,程式碼案例
每個知識點配套自測面試題,學完技術自我測試
本文初學向,所以希望文中所有的程式碼案例都能敲一遍
大哥大姐新年好,點贊轉發不要少
**文字已收錄至GitHub開源倉庫 Lu_JavaNodes 碼雲倉庫地址Lu_JavaNodes ,**包含教程涉及所有思維導圖,案例程式碼和後續講解視訊,歡迎Star增磚添瓦。
前言
庚子鼠年,封村兒,在試過了睡覺,打麻將,做涼皮,做蛋糕之後,我不由的陷入了對人生和社會的大思考
兩年的開發經驗和三年的大資料講師經驗告訴我,是時候寫些什麼了,我也早覺得有寫些東西的必要了。我向來是不憚以最多的無聊揣測這個假期的,但我沒想到……(不能再往下了,再往下真就算抄襲了)
於是決定將自己的的畢生功力匯聚整理成冊,寫出《圖文教程》系列Java技術學習祕籍,本功法力求 『圖文並茂』 『簡單易懂』,概念和程式碼實踐相結合,每個知識點輔助以自測面試題,希望大家通過本系列教程能夠快樂學Java,從練氣到飛昇。
本期選擇的技術是SpringBoot,SpringBoot 現如今已是Java程式設計師的必備修煉功法,具備SpringBoot大成的開發功力,才能行走江湖,縱橫大廠小派而不懼需求。
在正式開始學習之前,先通過思維導圖瞭解本教程的功法綱要
簡單說明,教程分為基礎篇,進階篇和高階篇
基礎篇,本章力求簡單快速的掌握基本的SpringBoot使用,並應用到專案中
進階篇,學會SpringBoot更多的常見用法以及底層原理
高階篇,著重介紹SpringBoot的與各大場景的整合使用
環境要求
開發工具 IDEA 版本不限
maven3.x
jdk1.8
本教程採用SpringBoot 2.0.3.RELEASE
本文學習目標
認識SpringBoot
掌握 通過 SpringBoot 搭建web環境
掌握 SpringBoot + Mybatis + Mysql 實現增刪改成的能力
掌握 SpringBoot 測試的使用
SpringBoot是啥
為啥用這玩意兒
SpringBoot優點很多,對提升開發速度有很大幫助,我們通過配置檔案說明一下SpringBoot的優秀。
回想往昔,在我剛畢業的時候,在一家跨境電商企業開發管理系統,這個專案採用的最傳統的SSM架構,在這個專案中充斥著大量的配置檔案,什麼是大量呢?舉個栗子,如下圖
**上圖是什麼呢?**用SSM寫一個增刪改差的最少配置。
朋友萌,你萌想想,功能程式碼都沒開始寫,就要先寫這麼一堆配置,完了還不知道寫的對不對,再多想想,如果你還要做許可權管理,Redis,訊息佇列,你還需要寫多少配置???這樣的開發效率 想死
不過不要慌,只要你學會了SpringBoot,通過SpringBoot 技術上面的配置檔案 一個都不寫,一個都不寫,一個都不寫。
oh my god 這麼好的技術,不學就是虧啊!不多說,我們一起來學它 學它 學它。
SpringBoot 簡介
Tips:本小節是SpringBoot的介紹和特點,如果想感受SpringBoot的魅力,可跳過直接閱讀 第二章節 10分鐘用上SpringBoot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始搭建以及開發過程。
你可以認為:springboot(微框架) = springmvc(控制器) + spring(專案管理)
特點如下
- 建立獨立的Spring應用程式
- 使用嵌入的Tomcat,應用無需打成war包
- 簡化Maven配置,starters自動配置和版本控制
- 大量自動配置,簡化開發
- 無需xml配置,開箱即用
簡介和特點不需特別在意,在教程中會逐個詳細講解
10分鐘用上SpringBoot(第一個demo)
10分鐘用上SpringBoot 程式碼案例
本節開始第一個demo的編寫,準備好你的IDEA,SpringBoot 要來嘍。
demo需求
-
使用SpringBoot搭建 web 環境
-
建立UserController類,類中定義 getUser() 方法 該方法會以Json的方法返回一句話:SpringBoot 真香。
-
執行專案能夠請求到該方法 並得到響應資料
Tips:案例程式碼 見 GitHub 和 碼雲倉庫
1.用IDEA建立一個空的maven專案 完善專案結構
2.在 pom.xml 中寫入 SpringBoot 的依賴
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lu</groupId>
<artifactId>boot-hello</artifactId>
<version>1.0-SNAPSHOT</version>
<!--繼承springboot的父專案-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<dependencies>
<!--引入springboot的web支援-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
3.編寫SpringBoot的啟動類 【SpringBoot專案的特點】可以啟動Spring Boot專案
啟動類的位置
啟動類程式碼如下
/**
* 啟動類規則
* 1.啟動類位置:主包下面和子包同級
* 2.需要一個@SpringBootApplication
*/
@SpringBootApplication
public class AppRun {
public static void main(String[] args) {
// 引數:啟動類類物件 主函式形參名
SpringApplication.run(AppRun.class,args);
}
}
4.編寫 application配置檔案
Tips:通過配置檔案可以做埠號,專案名等
配置檔案規則
-
配置檔名字必須叫application
-
配置檔案的格式有三種
-
properties
-
yml
-
yaml
-
配置檔案位置
配置檔案內容
5.編寫 UserController
6.通過啟動類 啟動專案
專案正確啟動 日誌如下
通過日誌 可以知道 專案啟動在了8802 埠, 專案名(context path) 為空
7. 開啟瀏覽器 訪問地址:http://localhost:8802/getUser
第一個demo 總結 程式碼詳解
恭喜你,我知道你肯定已經完成了第一個demo的效果,但是估計會有些懵逼,咋就跑起來了呢?為什麼沒用的Tomcat?pom檔案配置的是啥?啟動類寫的又是啥?
朋友,不要慌,鹿老師一個個給你解釋。
SpringBoot的特點
為什麼不需要Tomcat呢?這就是SpringBoot的優點之一啊,可以回憶一下簡介部分SpringBoot的特點。如果想不起來,不用翻找,貼心的鹿老師又寫了一遍
建立獨立的Spring應用程式
使用嵌入的Tomcat,應用無需打成war包
簡化Maven配置,starters自動配置和版本控制
大量自動配置,簡化開發
無需xml配置,開箱即用
之所以不需要 單獨安裝Tomcat 是因為SpringBoot使用嵌入的Tomcat,所以SpringBoot的專案直接就可以執行起來。
pom檔案依賴配置詳解
簡化Maven配置,starters自動配置和版本控制
不使用SpringBoot搭建web環境,少說也要匯入七八個依賴,但是如果沒有記錯的話,demo的開發只用到了一個依賴,有點不要太少,why?
先來說明 pom寫的第一個配置 parent 父專案
<!--繼承springboot的父專案-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
這個配置專案是一種宣告,用來管理 SpringBoot 的應用的版本。
啥意思嘞?
朋友,回想一下,匯入的依賴是啥?
<!--web相關依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web 就是我們匯入的第二個依賴,除了名字有點長以外,最特別的是沒有寫版本號,但是沒有影響依賴的下載,因為 spring-boot-starter-web 用的是 父專案 的版本號 2.0.3.RELEAS。
這就是 父專案的作用,以後我們匯入依賴預設是不需要寫版本號的。
版本號不寫了,但是 **為什麼一個依賴就夠了?**因為啟動器
什麼是啟動器,看一下 spring-boot-starter-web 這個很長的名字,這個名字需要注意的是前三個單詞 spring-boot-starter 凡是以這三個字母開頭的依賴我們都稱之為 starters(啟動器)。
Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在專案裡面引入這些starter相關場景的所有依賴都會匯入進來。要用什麼功能就匯入什麼場景的啟動器。
舉個栗子: spring-boot-starter-web web場景啟動器 SpringBoot將所有web專案開發能夠用的依賴都寫到了這個啟動器中,這樣匯入啟動器就擁有了開發web專案需要用到的所有依賴。
綜上所述,同理:
- 使用Redis 會有一個叫 spring-boot-starter-redis 的啟動器
- 使用 ES 會有一個 叫 spring-boot-starter-data-mongodb 的啟動器
- 等一百多個
啟動類講解
/**
* @SpringBootApplication 來標註一個主程式類,說明這是一個Spring Boot應用
*/
@SpringBootApplication
public class AppRun {
public static void main(String[] args) {
// Spring應用啟動起來
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
如果說我們的專案是一個火箭的話,這個類的 main函式 就是火箭的發射按鈕,執行 main方法 就運行了專案。
Tips:關於啟動類的實現原理以及配置檔案的更多用法,在進階篇詳細講解。
SpringBoot + Mybatis + 測試 實現增刪改查
接著 demo 繼續往下寫 整合Mybatis
準備工作
庫表準備
在mysql資料庫中 按照 sql 建立表
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of t_user
-- ----------------------------
BEGIN;
INSERT INTO `t_user` VALUES (1, 'zhangsan', '123456');
INSERT INTO `t_user` VALUES (2, 'lisi', '123456');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
實體類準備
在boot-hello專案的com.lu.entity包中寫入實體類
public class User {
private Integer id;
private String username;
private String password;
//get set 方法省略....
}
resources 下建立mappers目錄(放置mapper檔案)
整合Mybatis
1.匯入依賴
<!-- SpringBoot 整合 Mybatis的 啟動器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 資料來源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.19</version>
</dependency>
<!-- mysql驅動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
說明:由於springboot整合mybatis啟動器中會預設依賴mybatis 因此不需要單獨引入mybati版本,否則會出現衝突
2.配置application配置檔案
需要寫入兩種配置
- 資料庫的相關引數
- Mybatis的mapper檔案地址的配置
#資料來源配置
#指定驅動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#指定url
spring.datasource.url=jdbc:mysql://localhost:3306/boot
#指定使用者名稱
spring.datasource.username=root
#指定密碼
spring.datasource.password=123456
#指定連線池型別
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#Mybatis的配置 配置mapper檔案的地址
mybatis.mapper-locations=classpath:mappers/*Mapper.xml
說明一下mapper-locations這個配置 如圖
3.在啟動類上新增 掃描dao介面的註解
4.開發DAO介面以及Mapper
public interface UserDao {
List<User> findAll();
}
mapper檔案內容
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lu.dao.UserDao">
<select id="findAll" resultType="com.lu.entity.User">
select * from t_user
</select>
</mapper>
現在程式碼寫完了,作為一個擁有良好習慣的程式設計師,我應該測試一下dao介面中的查詢方法能不能正常使用,但是,貌似需要執行專案在controller中呼叫,才能測試。
no no no 其實不需要,SpringBoot 可以 非常非常非常 方便的整合單元測試,接下來我們就用 SpringBoot Test 來測試一下我們的查詢方法。
5. 引入SpringBoot測試依賴
<!-- 測試依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
6.編寫測試類
測試類的位置
測試類內容
/**
* @SpringBootTest(classes = {AppRun.class}) 引數為啟動類的類物件
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {AppRun.class})
public class TestUserDao {
@Autowired
private UserDao userDao;
/**
* 測試查詢方法
*/
@Test
public void test1(){
List<User> all = userDao.findAll();
// 列印查詢結果
for (User user : all) {
System.out.println(user);
}
}
}
執行測試類 結果如下
基礎篇上總結
恭喜你完成了本章的學習,恭喜你掌握了通過SpringBoot+Mybatis 實現增刪改成的能力。為你鼓掌!
讓我們再次回顧本文的學習目標
- 認識SpringBoot
- 掌握 通過 SpringBoot 搭建web環境
- 掌握 SpringBoot + Mybatis + Mysql 實現增刪改成的能力
- 掌握 SpringBoot 測試的使用
要掌握SpringBoot更多的用法,請持續關注本系列教程。
下面體貼的我給朋友萌還準備了一些 自測面試題和專案案例,希望你能夠成熱打鐵,將知識夯紮實。
自測面試題(答案見下期)
-
什麼是 Spring Boot?
-
為什麼要用 Spring Boot?
-
Spring Boot 需要獨立的容器執行嗎?
-
你如何理解 Spring Boot 中的 Starters?
-
SpringBoot 專案如何整合 Mybatis?
自測實現專案小案例(答案見下期)
Tip:在我的計劃中,更新完 SpringBoot 圖文教程系列 之後 將會更新 SpringBoot微服務電商後臺管理系統實戰開發圖文教程
文後所有專案小案例的庫表均來自該專案,通過精心設計,環環相扣,通過小案例的鋪墊,後續可以直接與 微服務實戰開發教程 無縫相容
庫表
下面這張表是 商品類別表 建表語句
CREATE TABLE `tb_category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '類目id',
`name` varchar(20) NOT NULL COMMENT '類目名稱',
`parent_id` bigint(20) NOT NULL COMMENT '父類目id,頂級類目填0',
`is_parent` tinyint(1) NOT NULL COMMENT '是否為父節點,0為否,1為是',
`sort` int(4) NOT NULL COMMENT '排序指數,越小越靠前',
PRIMARY KEY (`id`),
KEY `key_parent_id` (`parent_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1424 DEFAULT CHARSET=utf8 COMMENT='商品類目表,類目和商品(spu)是一對多關係,類目與品牌是多對多關係';
因為商品分類會有層級關係,因此這裡我們加入了parent_id
欄位,對本表中的其它分類進行自關聯。
測試資料新增sql內容過多,如有需要請訪問碼雲倉庫或通過WX獲取
需求
實現下面Service介面方法
public interface CategoryService {
//根據父節點查詢下一級商品類目資料
List<Category> queryListByParent(Long pid);
}
求關注,求點贊,求轉發
本人擁有兩年開發經驗和三年Java大資料教學經驗,曾幫助2000+學生成功就業和跳槽。
歡迎關注本人公眾號:鹿老師的Java筆記,將在長期更新Java技術圖文教程和視訊教程,Java學習經驗,Java面試經驗以及Java實戰開發經驗。
相關推薦
SpringBoot圖文教程「概念+案例 思維導圖」「基礎篇上」
有天上飛的概念,就要有落地的實現 概念+程式碼實現是本文的特點,教程將涵蓋完整的圖文教程,程式碼案例 每個知識點配套自測面試題,學完技術自我測試 本文初學向,所以希望文中所有的程式碼案例都能敲一遍 大哥大姐新年好,點贊轉發不要少 **文字已收錄至GitHub開源倉庫 Lu_JavaNod
SpringBoot圖文教程17—上手就會 RestTemplate 使用指南「Get Post」「設定請求頭」
![](https://img2020.cnblogs.com/other/1003051/202003/1003051-20200320211029269-1539461491.png) > **有天上飛的概念,就要有落地的實現** > > - 概念十遍不如程式碼一遍,朋友,希望你把
漂亮有創意的思維導圖模板下載教程,教你思維導圖怎麼畫
思維導圖是表達發散性思維的有效圖形思維工具,簡單卻又很有效,在辦公、教育、生活上被廣泛的應用,利用其記憶、閱 讀、思維的規律能夠在一定程度上協助人們在科學、藝術、邏輯與想象之間健康發展。 所以我們不是為了繪製思維導圖而去繪製,這一點也是很多初學思維導圖者的常常碰觸到的誤區之一,以下十套思維導
【資料庫】Oracle查詢優化改寫 技巧與案例 思維導圖
今天分享一個《Oracle查詢優化改寫 技巧與案例》的思維導圖, 簡單說一下此書,其中包含了許多Oracle實際中會遇到的案例, 可以作為一個工具詞典在需要時進行查閱。 https://github.com/kingdz2008/test/blob/master/note
思維導圖學習 | 第五篇:java學習特別篇,java小白到3年工作經驗成長曆程
配套Ximnd學習導圖下載地址 寫在最後 歡迎關注、喜歡、和點贊後續將推出更多的思維導圖學習文章,敬請期待。 歡迎關注我的微信公眾號獲取更多更全的學習資源,視訊資料,技術乾貨! 公眾號回覆
思維導圖學習 | 第六篇:java學習特別篇,10-15k薪資應具備的技能
配套Ximnd學習導圖下載地址 寫在最後 歡迎關注、喜歡、和點贊後續將推出更多的思維導圖教程,敬請期待。 歡迎關注我的微信公眾號獲取更多更全的學習資源,視訊資料,技術乾貨! 公眾號回覆“學習”
ac XMind的思維導圖添加子主題的圖文教程
工具欄 ces 1.5 鏈接 用戶 界面 mac 轉化 pro 如何給mac版XMind網頁鏈接的思維導圖添加子主題?XMIND是一款非常好用的思維導圖繪制軟件,能夠協助用戶快速捕捉創意與靈感,通過直觀、友好的圖形化操作界面,將思想、策略及商務信息轉化為行動藍圖,全面提升企
🔥SpringBoot圖文教程2—日誌的使用「logback」「log4j」
有天上飛的概念,就要有落地的實現 概念+程式碼實現是本文的特點,教程將涵蓋完整的圖文教程,程式碼案例 文章結尾配套自測面試題,學完技術自我測試更紮實 概念十遍不如程式碼一遍,朋友,希望你把文中所有的程式碼案例都敲一遍 大哥大姐新年好,點贊轉發不要少 SpringBoot 圖文系列教程技術大綱 簡
SpringBoot圖文教程8 — SpringBoot整合MBG「程式碼生成器」
有天上飛的概念,就要有落地的實現 概念十遍不如程式碼一遍,朋友,希望你把文中所有的程式碼案例都敲一遍 先贊後看,養成習慣 SpringBoot 圖文教程系列文章目錄 SpringBoot圖文教程1「概念+案例 思維導圖」「基礎篇上」 SpringBoot圖文教程2—日誌的使用「logback」「
SpringBoot圖文教程9—SpringBoot 匯入匯出 Excel 「Apache Poi」
有天上飛的概念,就要有落地的實現 概念十遍不如程式碼一遍,朋友,希望你把文中所有的程式碼案例都敲一遍 先贊後看,養成習慣 SpringBoot 圖文教程系列文章目錄 SpringBoot圖文教程1「概念+案例 思維導圖」「基礎篇上」 SpringBoot圖文教程2—日誌的使用「logback」「
SpringBoot圖文教程10—模板匯出|百萬資料Excel匯出|圖片匯出「easypoi」
![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305130804521-1152630068.png) > **有天上飛的概念,就要有落地的實現** > > - 概念十遍不如程式碼一遍,朋友,希望你把文
SpringBoot圖文教程11—從此不寫mapper檔案「SpringBoot整合MybatisPlus」
![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305210955270-1925372518.png) > **有天上飛的概念,就要有落地的實現** > > - 概念十遍不如程式碼一遍,朋友,希望你把文
SpringBoot圖文教程14—SpringBoot整合EasyExcel「上」
![](https://img2020.cnblogs.com/other/1003051/202003/1003051-20200311134159946-377635595.png) > **有天上飛的概念,就要有落地的實現** > > - 概念十遍不如程式碼一遍,朋友,希望你把文
SpringBoot圖文教程15—專案異常怎麼辦?「跳轉404錯誤頁面」「全域性異常捕獲」
![](https://img2020.cnblogs.com/other/1003051/202003/1003051-20200312205829155-764801728.png) > **有天上飛的概念,就要有落地的實現** > > - 概念十遍不如程式碼一遍,朋友,希望你把文
信息安全工程師教程學習筆記匯總(思維導圖及考試要點)
信息安全工程師信息安全工程師教程思維導圖https://www.moondream.cn/?p=178信息安全工程師教程思維導圖鏈接:https://pan.baidu.com/s/1CePwH94kIEAEN0ZDhZuTEQ 密碼:請進入備考群獲取信息安全工程師學習筆記匯總信息安全工程師學習筆記一之第一章
ADO.Net之SqlConnection、 Sqlcommand的應用學習心得(思維導圖,知識解析,案例分析)
ros statistic system 啟動 clone() 連接字符串 esp ans 用戶 ADO.Net之SqlConnection、 Sqlcommand的應用 一、思維導圖: ADO.NET與SQL連接: 二、知識點介紹: SqlConnecti
Mindmanager2016思維導圖 官方原版+永久啟用碼+安裝教程
Mindmanager2016思維導圖 官方原版+永久啟用碼+安裝教程 【1】官方原版軟體 (根據自己電腦選擇下載多少位的) ) 百度雲下載地址: 連結:https://pan.baidu.com/s/1g-RcTT6AKv4cVMgTklCmQg 提取碼:iqbb 複製這段內容後開啟百度網盤
思維導圖Xmind8 Pro 1分鐘破解 傻瓜式安裝啟用教程
版權宣告:本文為博主原創文章,請尊重原創,轉載請聯絡博主 微信公眾號:妞妞和喵喵,我在這裡等你~ Xmind是一款非常好用的思維導圖軟體,這一點沒人反對吧,它的介面友好、功能優秀、可用性極強,不僅可以繪製思維導圖,還能繪製魚骨圖、二維圖、樹形圖、邏輯圖、組織結構圖等,官網提供了免費版
思維導圖怎麼畫,漂亮的思維導圖模板下載教程
思維導圖是表達發散性思維的有效圖形思維工具 ,簡單卻又很有效,在辦公、教育、生活上被廣泛的應用,利用其記憶、閱讀、思維的規律能夠協助人們在科學、藝術、邏輯與想象之間健康發展。 要想畫好思維導圖,需要充分的利用到思維導圖軟體的幫助,其次就需要使用到各種不同領域的思維導
Xmind教程:思維導圖原來這麼簡單實用!
6年的工作利用思維導圖只需要6個月就可以輕鬆完成了?據美國波音飛機設計人員透露,他們按照傳統方法設計一架飛機大概要花費6到7年的時間。然而當他們引入思維導圖工具後,設計時間大大縮短,原本需要花費6年時間的工作居然6個月就提前完成了,不但如此,還大大為公司節省了數千萬美元的費用。