ssm整合步驟多、配置繁瑣
項目進行伺服器部署步驟繁瑣
springboot就是一個可以簡化整合過程中複雜配置的架構
随着動态語言的流行,java語言的開發就顯得格外笨重:配置繁瑣、開發效率低、項目的部署變得複雜、內建第三方技術難度大。
在這種情況下,springboot就應運而生。
springboot采用了<code>習慣優于配置/約定大于配置</code>的理念快速的搭建項目的開發環境,我們無需或者進行很少的相關spring配置就能夠快速的将項目運作起來
能夠快速的搭建項目
對主流的開發架構都提供了無配置內建(springboot内置了配置)
項目可以獨立運作、無需單獨配置servlet容器(内置了tomcat)
極大提高了開發、部署效率
提供了運作時監控系統(日志等)
與雲原生有天然的內建
由于配置都是内置的,報錯時定位比較困難
版本疊代速度比較快、有些版本改動還是比較大(增加學習成本)
體驗:基于springboot整合springmvc springboot應用需要依賴遠端伺服器進行建立 遠端伺服器: spring官方:https://start.spring.io ali:https://start.aliyun.com
3.1 file---new---project
3.2 填寫項目資訊
3.3 選擇項目依賴
3.4 選擇項目存儲目錄
3.5 網頁建立springboot應用
如果基于idea建立無法下載下傳,可以基于網頁版進行建立
3.2.1 應用項目結構
3.2.2 自定義配置(整合mybatis)
springboot幫助我們完成通用性配置,但是像資料庫連接配接位址、賬号、密碼等還是需要手動完成配置
修改mysql驅動的版本(選擇性)
在springboot主配置檔案<code>application.properties</code>檔案中配置資料源及路徑
在springboot啟動類通過<code>@mapperscan</code>注解指定dao接口的包名
3.3.1 啟動
springboot應用自帶servlet容器—tomcat,是以無需進行額外的伺服器配置,運作啟動類即可啟動一個springboot應用
3.3.2 測試
使用者的注冊功能
一個starter就是一個開發場景的支援( 依賴 + 配置) springboot為我們提供了簡化企業級開發絕大多數場景的支援(提供了多個starter),我們在進行項目開發的過程中隻需引入對應的starter(建立springboot應用時可選擇),相關的依賴和配置就會被内置到項目中(消除人工配置)。
4.1.1 starter依賴
一個starter依賴表示的不是一個依賴,而是某種開發環境所需的一組依賴
spring web --- <code>spring-boot-starter-web</code>
mybatis framework --- <code>mybatis-spring-boot-starter</code>
4.1.2 starter配置
一個starter不僅包含所需依賴,還包含了其所需的對應的配置
依賴:
配置:
4.1.3 案例
引入redis開發場景
添加starter依賴
在service中可以直接注入redis用戶端
4.2.1 基于spring官方伺服器建立的springboot應用
繼承spring-boot-starter-parent.pom
引入了maven對springboot應用支援的插件 spring-boot
4.2.2 基于ali伺服器建立的springboot應用
如果我們需要在springboot應用中整合一種新的開發場景,隻需在pom.xml引入對應的starter即可 一個starter不僅包含依賴,還包含相應的配置,starter中包含的配置都是通過java類實作的——java配置方式
4.3.1 spring版本發展
随着spring版本的疊代,配置方式也在發生變化
spring 1.x
所有的bean的配置隻能通過xml完成
spring 2.x
基于jdk1.5對注解的支援,spring 2.x開始支援注解
企業開發中到底是用xml配置還是用注解?
對基礎配置、引用的第三方依賴中的配置使用xml完成:例如資料源配置
業務開發使用注解:例如controller、service
spring 3.x
spring 開始提供基于java的配置方式
spring 4.x
xml、注解、java
4.3.2 xml配置
4.3.3 注解配置
4.3.4 java配置方式
建立配置類
springboot針對不同的開發場景提供預設的屬性配置,如果預設的配置不能滿足開發的需要,我們需要對屬性配置進行修改
springboot應用提供了一個全局配置檔案<code>application.properties</code>用于進行自定義配置
全局配置檔案支援2中文法配置:
properties 鍵值對配置
yaml 文法的配置
4.5.1 基于properties配置
4.5.2 基于yaml配置
4.5.3 常用的全局配置
在springboot應用啟動的時候是有一個預設啟動圖案的
這個預設圖案支援自定義配置
在resources目錄建立一個banner.txt
在banner.txt檔案中定義圖案 http://patorjk.com/software/taag/
佛祖保佑
springboot應用預設支援的動态網頁技術是thymeleaf,并不支援jsp;是以在springboot應用想要使用jsp需要通過手動整合來實作
修改pom檔案打包方式為war
在main中建立webapp目錄
在webapp建立.jsp頁面
将jsp檔案存放到web-inf目錄
在application.yml檔案配置springmvc視圖解析方式:
建立pagecontroller
建立項目時添加依賴
lombok
spring web
mysql driver
mybatis framework
修改mysql驅動的版本(可選)
将預設建立的application.properties字尾名修改為<code>yml</code>(根據習慣可選)
完成mybatis的自定義配置
<code>@mapperscan</code>
在springboot中整合mybatis的時候,預設內建了hikari連接配接池,hikari的效率比druid要高,但是得益于druid提供了比較便捷的監控系統在企業開發中,druid使用還是最多的。
6.4.1 添加druid的starter
6.4.2 配置druid資料源
thymeleaf是一種類似于jsp的動态網頁技術
jsp 必須依賴tomcat運作,不能直接運作在浏覽器中
html可以直接運作在浏覽器中,但是不能接收控制器傳遞的資料
thymeleaf是一種既保留了html的字尾能夠直接在浏覽器運作的能力、又實作了jsp顯示動态資料的功能——靜能檢視頁面效果、動則可以顯示資料
springboot應用對thymeleaf提供了良好的支援
7.2.1 添加thymeleaf的starter
7.2.2 建立thymeleaf模闆
thymeleaf模闆就是html檔案
springboot應用中 <code>resources\templates</code>目錄就是用來存放頁面模闆的
<code>重要說明:</code>
static 目錄下的資源被定義靜态資源,springboot應用預設放行;如果将html頁面建立static目錄是可以直接通路的
templates 目錄下的檔案會被定義為動态網頁模闆,springboot應用會攔截templates中定義的資源;如果将html檔案定義在templates目錄,則必須通過控制器跳轉通路。
在templates建立html頁面模闆
建立pagecontroller,用于轉發允許"直接通路"的頁面請求
如果要在thymeleaf模闆中擷取從控制傳遞的資料,需要使用th标簽
7.3.1 在thymeleaf模闆頁面引入th标簽的命名空間
7.3.2 th:text
在幾乎所有的html雙标簽都可以使用 th:text屬性,将接收到的資料顯示在标簽的内容中
7.3.3 th:inline 内聯
html内聯
css内聯
javascript内聯
7.3.4 th:object 和 *
7.4.1 th:each 循環
7.4.2 分支
th:if 如果條件不成立,則不顯示此标簽
th:switch 和 th:case
7.5.1 碎片的概念
碎片,就是html片段,我們可以将多個頁面中使用的相同的html标簽部分單獨定義,然後通過th:include可以在html網頁中引入定義的碎片
7.5.2 碎片使用案例
定義碎片 th:fragment
header.html
footer.html
引用碎片 th:include 和 th:replace
a.html
項目首次部署、服務啟動之後,如果應用發生了變化、而且idea感覺到了應用的變化,就自動的完成jar的更新,無需手動再次啟動伺服器,就可以通路應用的更新。
8.2.1 ide配置(idea)
file---settings
ctrl+shift+alt+/ ----- registry
8.2.2 springboot項目配置
在需要進行熱部署的springboot應用中添加依賴
配置springboot的maven插件
配置springboot應用的變化更新政策