中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

自治區(qū)住房和城鄉(xiāng)建設(shè)部網(wǎng)站天津網(wǎng)絡(luò)推廣公司

自治區(qū)住房和城鄉(xiāng)建設(shè)部網(wǎng)站,天津網(wǎng)絡(luò)推廣公司,安貞做網(wǎng)站公司,網(wǎng)站暫停怎么做文章目錄1 SpringBootWeb快速入門(mén)1.1Spring官網(wǎng)1.2 Web分析2. HTTP協(xié)議2.1 HTTP介紹34 SpringBootWeb請(qǐng)求響應(yīng)5 響應(yīng)6 分層解耦6.1 三層架構(gòu)6.1.1 三層架構(gòu)介紹6.1.2 基于三層架構(gòu)的程序執(zhí)行流程:6.1.3 代碼拆分6.2 分層解耦6.2.1 內(nèi)聚、耦合6.2.2 解耦思路6.3 IOC&…

文章目錄

  • 1 SpringBootWeb快速入門(mén)
    • 1.1Spring官網(wǎng)
    • 1.2 Web分析
  • 2. HTTP協(xié)議
    • 2.1 HTTP介紹
  • 3
  • 4 SpringBootWeb請(qǐng)求響應(yīng)
  • 5 響應(yīng)
  • 6 分層解耦
    • 6.1 三層架構(gòu)
      • 6.1.1 三層架構(gòu)介紹
      • 6.1.2 基于三層架構(gòu)的程序執(zhí)行流程:
      • 6.1.3 代碼拆分
    • 6.2 分層解耦
      • 6.2.1 內(nèi)聚、耦合
      • 6.2.2 解耦思路
    • 6.3 IOC&DI
      • 6.3.1 IOC詳解
        • 6.3.1.1 bean的聲明
        • 6.3.1.2 組件掃描
      • 6.1.2 DI詳解

1 SpringBootWeb快速入門(mén)

1.1Spring官網(wǎng)

https://spring.io

spring家族的技術(shù),都是基于SpringFramework的,SpringFramework中提供很多實(shí)用功能,如:依賴(lài)注入、事務(wù)管理、web開(kāi)發(fā)支持、數(shù)據(jù)訪問(wèn)、消息服務(wù)等。

1.2 Web分析

在這里插入圖片描述

瀏覽器服務(wù)器兩端進(jìn)行數(shù)據(jù)交互,使用http協(xié)議

2. HTTP協(xié)議

2.1 HTTP介紹

HTTP:Hyper Text Transfer Protocol(超文本傳輸協(xié)議),規(guī)定了瀏覽器與服務(wù)器之間數(shù)據(jù)傳輸?shù)囊?guī)則。

3

4 SpringBootWeb請(qǐng)求響應(yīng)

5 響應(yīng)

6 分層解耦

6.1 三層架構(gòu)

6.1.1 三層架構(gòu)介紹

在我們進(jìn)行程序設(shè)計(jì)及程序開(kāi)發(fā)時(shí),盡可能讓每一個(gè)接口、類(lèi)、方法的職責(zé)更單一些(單一職責(zé)原則)。

單一職責(zé)原則:一個(gè)類(lèi)或一個(gè)方法,就只做一件事情,只管一塊功能。
在這里插入圖片描述
根據(jù)上述案例的處理邏輯呢,從組成上分為三部分:

  • 數(shù)據(jù)訪問(wèn):負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)的維護(hù)操作,包括增、刪、改、查等操作。
  • 邏輯處理:負(fù)責(zé)業(yè)務(wù)邏輯處理的代碼。
  • 請(qǐng)求處理、響應(yīng)數(shù)據(jù):負(fù)責(zé),接收頁(yè)面的請(qǐng)求,給頁(yè)面響應(yīng)數(shù)據(jù)。

按照上述三個(gè)組成部分,在我們項(xiàng)目開(kāi)發(fā)中呢,可以將代碼分為三層:
在這里插入圖片描述

  • Controller控制層。接收前端發(fā)送的請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理,并響應(yīng)數(shù)據(jù)。
  • Service業(yè)務(wù)邏輯層。處理具體的業(yè)務(wù)邏輯。
  • Dao數(shù)據(jù)訪問(wèn)層(Data Access Object),也稱(chēng)為持久層。負(fù)責(zé)數(shù)據(jù)訪問(wèn)操作,包括數(shù)據(jù)的增、刪、改、查。

6.1.2 基于三層架構(gòu)的程序執(zhí)行流程:

在這里插入圖片描述

  • 前端發(fā)起請(qǐng)求,由Controller層接收(Controller響應(yīng)數(shù)據(jù)給前端)
  • Controller層調(diào)用Service層來(lái)進(jìn)行邏輯處理(Service層處理完后,把處理結(jié)果返回給Controller層)
  • Serivce層調(diào)用Dao層(邏輯處理過(guò)程中需要用到的數(shù)據(jù)Dao層獲取
  • Dao層操作文件中數(shù)據(jù)(Dao拿到的數(shù)據(jù)會(huì)返回給Service層)

6.1.3 代碼拆分

包名備注作用
控制層包名xxxx.controller接收前端發(fā)送請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理,并響應(yīng)數(shù)據(jù)
業(yè)務(wù)邏輯層包名xxxx.service處理業(yè)務(wù)邏輯
數(shù)據(jù)訪問(wèn)層包名xxxx.dao數(shù)據(jù)訪問(wèn)操作,包含數(shù)據(jù)的增、刪、改、查

三層架構(gòu)的好處

  1. 復(fù)用性強(qiáng)
  2. 便于維護(hù)
  3. 利用擴(kuò)展

6.2 分層解耦

6.2.1 內(nèi)聚、耦合

內(nèi)聚:軟件中各個(gè)功能模塊內(nèi)部的功能聯(lián)系。
耦合:衡量軟件中各個(gè)層/模塊間的依賴(lài)、關(guān)聯(lián)的程度。
軟件設(shè)計(jì)原則:高內(nèi)聚低耦合。

6.2.2 解耦思路

解決思路是:

  • 提供一個(gè)容器,容器中存儲(chǔ)一些對(duì)象(例:EmpService對(duì)象)
  • controller程序從容器中獲取EmpService類(lèi)型的對(duì)象

實(shí)現(xiàn)上述解耦操作,涉及到Spring中的兩個(gè)核心概念:

控制反轉(zhuǎn):( Inversion Of Control,簡(jiǎn)稱(chēng)IOC)。對(duì)象的創(chuàng)建控制權(quán)由程序自身轉(zhuǎn)移到外部(容器),這種思想稱(chēng)為控制反轉(zhuǎn)。
依賴(lài)注入:(Dependency Injection,簡(jiǎn)稱(chēng)DI)。容器為應(yīng)用程序提供運(yùn)行時(shí),所依賴(lài)的資源,稱(chēng)之為依賴(lài)注入。

IOC容器中創(chuàng)建、管理的對(duì)象,稱(chēng)之為:bean對(duì)象

6.3 IOC&DI

6.3.1 IOC詳解

6.3.1.1 bean的聲明

IOC控制反轉(zhuǎn),就是將對(duì)象的控制權(quán)交給Spring的IOC容器,由IOC容器創(chuàng)建及管理對(duì)象。IOC容器創(chuàng)建的對(duì)象稱(chēng)為bean對(duì)象。

要把某個(gè)對(duì)象交給IOC容器管理,需要在類(lèi)上添加注解:@Component
為了更好標(biāo)識(shí)web應(yīng)用程序中bean對(duì)象到歸屬于哪層,又提供了@Component的衍生注解

  • @Controller (標(biāo)注在控制層類(lèi)上)
  • @Service (標(biāo)注在業(yè)務(wù)層類(lèi)上)
  • @Repository (標(biāo)注在數(shù)據(jù)訪問(wèn)層類(lèi)上)
注解說(shuō)明位置
@Controller@Component的衍生注解標(biāo)注在控制器類(lèi)上
@Service@Component的衍生注解標(biāo)注在業(yè)務(wù)類(lèi)上
@Repository@Component的衍生注解標(biāo)注在數(shù)據(jù)訪問(wèn)類(lèi)上(由于與mybatis整合,用的少)
@Component聲明bean的基礎(chǔ)注解不屬于以上三類(lèi)時(shí),用此注解

6.3.1.2 組件掃描

bean想要生效,需要被組件掃描
在這里插入圖片描述
運(yùn)行程序后,報(bào)錯(cuò):
在這里插入圖片描述
為什么沒(méi)有找到bean對(duì)象呢?

  • 使用四大注解聲明的bean,要想生效,需要被組件掃描注解@ComponentScan掃描
    @ComponentScan注解沒(méi)有顯式配置,但實(shí)際上已經(jīng)包含在引導(dǎo)類(lèi)聲明注解 @SpringBootApplication 中,默認(rèn)掃描的范圍是SpringBoot啟動(dòng)類(lèi)所在包及其子包

如下結(jié)構(gòu)掃描全部:
在這里插入圖片描述

6.1.2 DI詳解

依賴(lài)注入,指IOC容器要為應(yīng)用程序提供運(yùn)行時(shí)所依賴(lài)的資源,而資源指的就是對(duì)象。

@Autowired注解,默認(rèn)是按照類(lèi)型進(jìn)行自動(dòng)裝配的(去IOC容器中找某個(gè)類(lèi)型的對(duì)象,然后完成注入操作)
入門(mén)程序舉例:在EmpController運(yùn)行時(shí),要到IOC容器中找EmpService類(lèi)型的對(duì)象,而IOC容器中剛好有EmpService類(lèi)型的對(duì)象,所以就找到了這個(gè)類(lèi)型的對(duì)象完成注入操作。

那如果在IOC容器中,存在多個(gè)相同類(lèi)型的bean對(duì)象,會(huì)出現(xiàn)什么情況呢?
在這里插入圖片描述
程序運(yùn)行會(huì)報(bào)錯(cuò)
在這里插入圖片描述

如何解決上述問(wèn)題呢?Spring提供了以下幾種解決方案:

  • @Primary
    使用@Primary注解:當(dāng)存在多個(gè)相同類(lèi)型的Bean注入時(shí),加上@Primary注解,來(lái)確定默認(rèn)的實(shí)現(xiàn)。
    在這里插入圖片描述
  • @Qualifier
    使用@Qualifier注解:指定當(dāng)前要注入的bean對(duì)象。 在@Qualifier的value屬性中,指定注入的bean的名稱(chēng)。
  • @Qualifier注解不能單獨(dú)使用,必須配合@Autowired使用
    在這里插入圖片描述
  • @Resource
    使用@Resource注解:是按照bean的名稱(chēng)進(jìn)行注入。通過(guò)name屬性指定要注入的bean的名稱(chēng)。
    在這里插入圖片描述

面試題 : @Autowird 與 @Resource的區(qū)別

  • @Autowiredspring框架提供的注解,而**@ResourceJDK提供**的注解
  • @Autowired 默認(rèn)是按照類(lèi)型注入,而**@Resource按照名稱(chēng)注入**
http://www.risenshineclean.com/news/54057.html

相關(guān)文章:

  • 網(wǎng)站用圖片怎么交換友情鏈接
  • 自己的網(wǎng)站怎么做搜索引擎制作免費(fèi)個(gè)人網(wǎng)站
  • 網(wǎng)站建設(shè)與維護(hù)筆記優(yōu)就業(yè)seo課程學(xué)多久
  • 專(zhuān)業(yè)品牌設(shè)計(jì)網(wǎng)站建設(shè)seo查詢(xún)軟件
  • 怎么生成網(wǎng)站地圖5118素材網(wǎng)站
  • 網(wǎng)站開(kāi)發(fā)實(shí)踐意義足球比賽直播2021歐冠決賽
  • acg的wordpress主題深圳百度推廣優(yōu)化
  • 主流網(wǎng)站模板網(wǎng)址查詢(xún)域名
  • java 企業(yè)網(wǎng)站開(kāi)發(fā)搜索引擎優(yōu)化簡(jiǎn)稱(chēng)seo
  • 濟(jì)南企業(yè)建站系統(tǒng)企業(yè)員工培訓(xùn)總結(jié)
  • 電子商務(wù)網(wǎng)站實(shí)例建站模板平臺(tái)
  • 網(wǎng)站建設(shè)推廣方案網(wǎng)絡(luò)項(xiàng)目推廣平臺(tái)
  • 用wex5可以做網(wǎng)站嗎中國(guó)培訓(xùn)網(wǎng)的證書(shū)含金量
  • 怎樣做社交網(wǎng)站互聯(lián)網(wǎng)廣告推廣好做嗎
  • 可以做軟件的網(wǎng)站有哪些功能成都百度業(yè)務(wù)員電話
  • 網(wǎng)站控制面板網(wǎng)站查詢(xún)
  • 哪家公司做網(wǎng)站比較好成都百度seo公司
  • 昆明企業(yè)建網(wǎng)站多少錢(qián)萬(wàn)網(wǎng)域名注冊(cè)官網(wǎng)
  • 怎樣建設(shè)與維護(hù)自己的平臺(tái)網(wǎng)站成都競(jìng)價(jià)托管多少錢(qián)
  • 酒店預(yù)定網(wǎng)站建設(shè)方案北京疫情太嚴(yán)重了
  • 網(wǎng)站建設(shè)專(zhuān)項(xiàng)檢查上海seo怎么優(yōu)化
  • 怎么用自己的電腦做服務(wù)器發(fā)布網(wǎng)站濟(jì)南做seo排名
  • 百度網(wǎng)站提交入口百度怎么發(fā)外鏈
  • 高仿服裝網(wǎng)站建設(shè)東莞關(guān)鍵詞seo優(yōu)化
  • 微信公眾平臺(tái)小程序是什么寧波seo網(wǎng)站服務(wù)
  • 北京做網(wǎng)站站長(zhǎng)工具麻豆
  • 做室內(nèi)裝修的網(wǎng)站seo排名優(yōu)化培訓(xùn)價(jià)格
  • 酷炫網(wǎng)站設(shè)計(jì)風(fēng)格北京做網(wǎng)站推廣
  • 網(wǎng)站建設(shè)這個(gè)工作怎么樣天津建站網(wǎng)
  • 公司網(wǎng)站建設(shè)方案詳細(xì)方案軟文推廣產(chǎn)品