一、概念
1.Spring:是一個開源的輕量級的java開發框架。
2.SpringBoot:時用來簡化Spring應用的初始搭建以及開發過程。
3.SpringMVC:Spring MVC是一個基於Java的實現了MVC設計模式的請求驅動類型的輕量級Web框架,通過把Model,View,Controller分離,將web層進行職責解耦,把複雜的web應用分成邏輯清晰的幾部分,簡化開發,減少出錯,方便組內開發人員之間的配合。
4.mybatis:Mybatis是一個優秀的持久層框架,它對JDBC操作數據庫的過程進行封裝,使開發者只需要關注sql本身。
二、框架的作用
1.SpringMVC作用:接收用戶提交的數據,返回服務器的數據。(交互)
2.Spring作用:整合其他的第三方框架,可以讓程序調用以一種統一的方式進行調用(整合)
3.Mybatis作用:整合JDBC方便用戶與數據庫進行交互(持久化)
4.SpringBoot作用:簡化Spring等框架的操作(簡化)。理解:SpringBoot就是一個框架的高級API
三、框架之間的關係
四、相關配置文件
1.pom.xml
(1)parent標籤說明:是spring官網負責維護,在其中定義了幾乎所有的框架與springboot兼容的版本信息。作用是為了集中定義版本號。
(2)dependencies標籤:依賴:項目中需要添加什麼功能,則依賴什麼jar包。
(3)build標籤:插件。
2.properties
(1)properties的語法是key-value結構,基本寫法:key=value 不要寫多餘的空格。
(2)properties本身就是字符串的數據類型,所以無需添加引號。
(3)IDEA的設定是UTF-8,是IDEA讀取的字符集的編碼,但是properties在通過IO讀取的時候,默認編碼是ISO-8859-1.所以中文必定亂碼,需要設定字符集。
2.YML
(1)數據結構 key-value結構,寫法: key:(空格)value
(2)yml文件有層級結構,注意父子級的語法的縮進
(3)yml文件程序默認讀取時採用UTF-8編碼
五、高級用法
1.熱部署說明
作用:添加依賴之後,代碼修改不需要手動重啟服務器,只需等待一會兒,就會自動更新。
2.lombok
作用:簡化用戶創建實體對象的過程,由插件自動完成實體對象中常用方法的構建(get、set、toString、構造等)
註解:1.@Data:以便為屬性賦值get、set方法。@Accessors(chain=true)鏈式加載,set方法返回本對象來實現鏈式加載。
注意:在linux系統中運行項目,是否需要體檢安裝插件?不要,因為lombok在編譯期有效,由xxx.java文件編譯為xxx.class文件時,已經動態添加了set、get方法。所以在項目發佈的時候(xxx.class文件組成的xxx.jar),lombok已經完成任務,所以不需要安裝lombok環境。
六、springboot加載器順序
1.當用戶點擊main方法時啟動程序
2.SpringBoot程序開始加載主啟動類上邊的註解@SpringBootApplication(SpringBoot內部運行機制開始執行)
3.當SpringBoot程序開始執行,則會動態的獲取當前主啟動類的包路徑。
4.通過包掃描的機制,將特定的註解標識的類(Controller、Service、Dao)。交給Spring容器管理。
5.Spring容器維護的是一個Map集合:key:類名首字母小寫,value:實例化對象:
6.當對象創建時(實例化),遇到@Autowired 則需要依賴注入對象,當整個Spring容器內部都沒有該對象時,則會報錯,注入失敗,如果Map中維護了需要注入的對象則@Autowired 注入成功,則最終對象實例化正常
7.當上述的操作都運行成功之後,則Spring容器啟動成功,等待用戶調用。
七、SpringBoot整合Mybatis核心
1.導包和編輯yml文件
2.為接口創建代理對象 註解:@Mapper 因為接口不能實例化對象,所以Spring就為接口創建了一個代理對象。
3.@MapperScan:SpringBoot為了簡化代碼,提供了包掃描機制,為包路徑下的接口創建代理對象,之後交給Spring容器管理可以在任意位置依賴注入
4.mybatis實現數據查詢時由2中寫法:
1.將所有的sql語句都寫在xml映射文件裡。
2.可以將sql語句通過註解的方式標識在接口方法中
八、MybatisPlus
1.概念:Mybatis-Plus,簡稱MP,是一個Mybatis的增強工具,在Mybatis的基礎上只做增強不做改變,為簡化開發,提高效率而生。使用MP主要完成單表的CURD操作簡化開發。
2.註解:@TableName("demo_user") 實現對象和數據庫表明的映射
@TableId(type = IdType.AUTO) 設置主鍵自增
@TableFIeld("name") 實現屬性與字段的映射
規則:如果屬性與字段的名字一致,則註解可以shenglve
3.在Mapper層的類中,繼承接口BeanMapper,別忘了添加泛型對象,否則程序無法執行。
4.MybatisPlus中最重要的就是QueryWrapper類的方法,這個類封裝了一些數據庫的常見關鍵字和操作,然後將對象傳遞給相應的增刪改查,就可以執行sql語句。
九、JSON格式
JSON(javaScript Object Notation)時一種輕量級的數據交換格式。採用完全獨立於程序語言的文本格式。
1.對象格式:{"id":1,"name":"鋼鐵俠","age":200,"sex":"男"}
2.數組格式:["張三","李四","王五"]
3.嵌套格式:[{"id":1,"name":"鋼鐵俠","age":200,"sex":"男"},{"id":2,"name":"蜘蛛俠","age":50,"sex":"男"}]
十、Ajax
1.特點:局部刷新,異步訪問
2.說明:Ajax是實現前後端交互,最為常用的一種方式
3.Ajax異步調用的原理:
同步:用戶發起請求時,要求第一時間服務器做出相應,在此期間用戶不可以做其他操作,只能等待服務器返回數據,刷新一次。
異步:用戶發起請求時,要求服務器做出響應,在此期間用戶可以做其他的操作,如果後端服務器返回數據則通過回調函數通知客戶,局部刷新多次。
4.常見的請求類型
(1)GET
(2)POST
(3)PUT
(4)DELETE
5.關於Ajax總結:
Ajax是局部刷星,異步訪問
Ajax異步的和興在於Ajax引擎(代理)
AJax請求調用時無論是否成功,都通過回調函數的方式進行。sucess、error
Ajax參數傳遞的寫法:對象寫法,字符串拼接
for循環方式1.常規方式2.in3.of
6.跨域請求實現
需要添加@CrossOrigin的註解
十一、JS變量的基本用法
1.var關鍵字:var id;標識定義一個變量名稱為id。該變量相當於在全局範圍內聲明瞭一個變量。該變量聲明沒有作用域的概念。弊端:由於沒有作用域,導致變量使用混亂。
2.let關鍵字:從新版本呢的JS開始,兼容支持let,該關鍵字的用法與var一樣,但是有作用域的範圍,更加通用。
3.const關鍵字:該關鍵字用來標識常量,該數據不變。
十二、跨域說明
1.同源策略
規定:瀏覽器的網址與Ajax請求網址必須滿足同源策略,瀏覽器才能解析Ajax,執行正確的請求。
2.規定要求:請求協議://域名:端口號
如果三者都滿足,則符合同源策略。瀏覽器可以正確解析。反之,不滿足同源策略,稱為跨域請求,則瀏覽器不能正常解析ajax請求。
練習:
瀏覽器地址: http://localhost:8090/userList.html
Ajax請求地址: http://localhost:8090/abc/b 滿足同源策略
瀏覽器地址: http://localhost:80/userList.html
Ajax請求地址: http://localhost:8090/abc/b 端口不同 跨域請求
瀏覽器地址: http://localhost:8090/userList.html
Ajax請求地址: https://localhost:8090/abc/b 協議不同,跨域請求
manage.jt.com 對應的IP假設為10.6.6.8
瀏覽器地址: http://manage.jt.com/userList.html
Ajax請求地址: http://10.6.6.8/abc/b 跨域請求 域名不同(即使映射也是跨域)
瀏覽器地址: http://manage.jt.com:/userList.html http協議默認端口80
Ajax請求地址: http://manage.jt.com:80/aaa/bbb 同域請求
3.CORS介紹:
CORS時一個W3C標準,全稱是跨域資源共享。