開發與維運

java學習筆記

一、概念

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

三、框架之間的關係

image.jpeg

四、相關配置文件

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異步調用的原理:

同步:用戶發起請求時,要求第一時間服務器做出相應,在此期間用戶不可以做其他操作,只能等待服務器返回數據,刷新一次。

異步:用戶發起請求時,要求服務器做出響應,在此期間用戶可以做其他的操作,如果後端服務器返回數據則通過回調函數通知客戶,局部刷新多次。

image.jpeg

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標準,全稱是跨域資源共享。

Leave a Reply

Your email address will not be published. Required fields are marked *