国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中 Controller、Service、Dao/Mapper層的區(qū)別與用法

這篇具有很好參考價(jià)值的文章主要介紹了Java中 Controller、Service、Dao/Mapper層的區(qū)別與用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Java中 Controller、Service、Dao/Mapper層的區(qū)別與用法

在Java開發(fā)中,通常會(huì)采用三層架構(gòu)(或稱MVC架構(gòu))來劃分程序的職責(zé)和功能,分別是Controller層、Service層、Dao/Mapper層。

1、Service層:業(yè)務(wù)層–>控制業(yè)務(wù)

業(yè)務(wù)模塊的邏輯功能設(shè)計(jì),和DAO層一樣都是先設(shè)計(jì)接口,再創(chuàng)建要實(shí)現(xiàn)的類,然后在配置文件中進(jìn)行配置其實(shí)現(xiàn)的關(guān)聯(lián)。接下來就可以在service層調(diào)用接口進(jìn)行業(yè)務(wù)邏輯應(yīng)用的處理。

好處:封裝Service層的業(yè)務(wù)邏輯有利于業(yè)務(wù)邏輯的獨(dú)立性和重復(fù)利用性。

2、Controller層:控制層–>調(diào)用業(yè)務(wù)層方法來控制業(yè)務(wù)邏輯

controller層主要調(diào)用Service層里面的接口來控制具體的業(yè)務(wù)流程,控制層的配置也要在配置文件中進(jìn)行。

Controller和Service的區(qū)別是:Controller負(fù)責(zé)具體的業(yè)務(wù)模塊流程的控制;Service層負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì)

3、Dao/Mapper層:持久層,主要與數(shù)據(jù)庫交互

Dao層首先會(huì)創(chuàng)建Dao接口,接著就可以在配置文件中定義該接口的實(shí)現(xiàn)類;然后就可以在模塊中調(diào)用Dao的接口進(jìn)行數(shù)據(jù)業(yè)務(wù)的處理,而不用關(guān)注此接口的具體實(shí)現(xiàn)類是哪一個(gè)類,Dao層的數(shù)據(jù)源和數(shù)據(jù)庫連接的參數(shù)都是在配置文件中進(jìn)行配置的。

以下是更專業(yè)的詳解

Controller層

Controller層是Java Web應(yīng)用程序里面的控制層,主要負(fù)責(zé)接收客戶端發(fā)送的請(qǐng)求、調(diào)度Service層的各個(gè)方法,并將處理的結(jié)果返回給客戶端。同時(shí),Controller層也可以對(duì)請(qǐng)求參數(shù)進(jìn)行校驗(yàn),防止錯(cuò)誤數(shù)據(jù)的處理和提交。

Controller層主要使用 Spring MVC 相關(guān)的注解來映射請(qǐng)求和處理請(qǐng)求結(jié)果。例如,@RequestMapping注解用于配置基于請(qǐng)求URL的映射,@Controller注解用于標(biāo)識(shí)該類為控制器類,@ResponseBody注解用于將返回結(jié)果序列化成JSON等格式返回給客戶端。

Service層

Service層是Java Web應(yīng)用程序里面的業(yè)務(wù)邏輯層,主要負(fù)責(zé)處理業(yè)務(wù)邏輯、實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)、事務(wù)控制、權(quán)限控制等方面。Service層通過調(diào)用Dao/Mapper層的接口來操作數(shù)據(jù)庫,以完成具體的業(yè)務(wù)目標(biāo)。

為了能夠?qū)崿F(xiàn)業(yè)務(wù)邏輯的獨(dú)立性和可重用性,Service層通常采用接口+實(shí)現(xiàn)類的方式進(jìn)行開發(fā)。Service層主要使用@Autowired注解來注入Dao/Mapper層的實(shí)例,并使用@Transactional注解來定義事務(wù)。

Dao/Mapper層

Dao/Mapper層是Java Web應(yīng)用程序里面的數(shù)據(jù)訪問層,主要負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交互,進(jìn)行數(shù)據(jù)讀取、寫入、修改、刪除等操作。Dao/Mapper層通常使用Spring Data JPA、MyBatis等開源框架進(jìn)行ORM操作。

在Dao/Mapper層中通常有一個(gè)Java接口和一個(gè)對(duì)應(yīng)的XML文件(或注解方式進(jìn)行映射),用于定義SQL語句,以完成數(shù)據(jù)的增、刪、改、查操作。Dao/Mapper層中的方法會(huì)由Service層來調(diào)用,通過調(diào)用SQL語句來完成與數(shù)據(jù)庫的交互。

總之,Controller、Service、Dao/Mapper層是Java Web應(yīng)用程序中常用的三層架構(gòu),分別負(fù)責(zé)接收請(qǐng)求、處理業(yè)務(wù)邏輯和與數(shù)據(jù)庫交互。合理地劃分和組織這三層的代碼,可以簡化程序的開發(fā)和維護(hù),提高代碼的可重用性和可維護(hù)性。文章來源地址http://www.zghlxwxcb.cn/news/detail-459695.html

到了這里,關(guān)于Java中 Controller、Service、Dao/Mapper層的區(qū)別與用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • mapper層和service層的區(qū)別

    在軟件開發(fā)中,通常將應(yīng)用程序的不同層進(jìn)行分離,以便實(shí)現(xiàn)更好的代碼組織和職責(zé)分離。通常將應(yīng)用程序分為三個(gè)主要層:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。其中,業(yè)務(wù)邏輯層通常又可以分為 Service 層和 Mapper 層。 Mapper 層是數(shù)據(jù)訪問層的一部分,負(fù)責(zé)將數(shù)據(jù)從數(shù)據(jù)庫中提

    2024年02月12日
    瀏覽(21)
  • Java——Controller層、Service層和DAO層

    在 Java 的三層架構(gòu)中,通常會(huì)涉及到以下幾個(gè)層次:Controller層、Service層和DAO層。 Controller層(控制層):Controller層是應(yīng)用程序的入口點(diǎn),負(fù)責(zé)接收用戶的請(qǐng)求并處理。它通常處理來自前端或客戶端的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的Service層進(jìn)行業(yè)務(wù)處理。Controller層負(fù)責(zé)接收和驗(yàn)

    2024年02月04日
    瀏覽(15)
  • java中的controller、domain、mapper(persistence)、service 都是做什么用的?

    java中的controller、domain、mapper(persistence)、service代表了服務(wù)端接口的 4 層,第一層是控制層(controller),負(fù)責(zé)接口請(qǐng)求/響應(yīng)的控制,調(diào)用第二層業(yè)務(wù)邏輯層(service 一般分為接口和實(shí)現(xiàn)),完成具體業(yè)務(wù)功能,它會(huì)調(diào)用第三層數(shù)據(jù)持久層 mapper(persistence)的邏輯,作用是訪

    2024年02月15日
    瀏覽(20)
  • 剖析Java中的Entity、service、serviceImpl、Mapper以及Controller層之間的關(guān)系(代碼詮釋)

    學(xué)習(xí)了Java的相關(guān)方面知識(shí)之后,但對(duì)于各層次之間的關(guān)系以及部署,可能還會(huì)有些陌生感,下面以代碼講解各層之間的關(guān)系。 (企業(yè)中多數(shù)以Springboot為例,下面的代碼都是以Springboot為例) 如果還停留在SSM基礎(chǔ)或者補(bǔ)充Springboot的基礎(chǔ)知識(shí),也可在我的博客搜索。 簡單的Sp

    2024年04月26日
    瀏覽(18)
  • SpringBoot(入門)三層架構(gòu)Controller、Service、Dao

    SpringBoot(入門)三層架構(gòu)Controller、Service、Dao

    SpringB是一個(gè)基于Java的開源框架,用于創(chuàng)建微服務(wù)。它由Pivotal Team開發(fā),用于構(gòu)建獨(dú)立的生產(chǎn)就緒Spring應(yīng)用。?SpringBoot?的設(shè)計(jì)是為了讓你盡可能快的跑起來 Spring 應(yīng)用程序并且盡可能減少你的配置文件,簡化開發(fā)。 Controller層:(顧名思義 控制層)控制并處理http請(qǐng)求,將其不

    2024年02月07日
    瀏覽(19)
  • 使用mybatisX逆向生成數(shù)據(jù)表實(shí)體類(pojo,dao),mapper,service

    使用mybatisX逆向生成數(shù)據(jù)表實(shí)體類(pojo,dao),mapper,service

    先看使用mybatisX后生成的文件。 1.先在idea安裝mybatisX插件,在file-setting-plugins,搜索mybatisX插件,重新啟動(dòng)idea即可。 2.在idea編輯器右側(cè)點(diǎn)擊Database,點(diǎn)擊“+”鏈接你的數(shù)據(jù)庫類型,這里我選mysql。 ? ? 輸入root,密碼:xxxx 輸入url:jdbc:mysql://localhost:3306/emos?useUnicode=truecharacterEnc

    2024年02月03日
    瀏覽(19)
  • spring boot,DAO層、ENTITY層、SERVICE層、CONTROLLER層之間的關(guān)系

    spring boot,DAO層、ENTITY層、SERVICE層、CONTROLLER層之間的關(guān)系

    主要用于 定義與數(shù)據(jù)庫對(duì)象應(yīng)的屬性,提供get/set方法 ,tostring方法,有參無參構(gòu)造函數(shù)。 DAO層 首先會(huì)創(chuàng)建Dao接口 , 接著就可以在配置文件中定義該接口的實(shí)現(xiàn)類 ;接著就可以在模塊中調(diào)用Dao的接口進(jìn)行數(shù)據(jù)業(yè)務(wù)的處理,而不用關(guān)注此接口的具體實(shí)現(xiàn)類是哪一個(gè)類,Dao層的數(shù)

    2024年04月10日
    瀏覽(27)
  • 后端開發(fā)基礎(chǔ)概念 Entity,DAO,DO,DTO,VO, Service,Controller

    Entity主要用于ORM(對(duì)象關(guān)系映射)框架中,如Hibernate、MyBatis等,以便將數(shù)據(jù)庫中的數(shù)據(jù)映射為對(duì)象,方便進(jìn)行業(yè)務(wù)操作。 Entity通常與數(shù)據(jù)庫表一一對(duì)應(yīng),代表 業(yè)務(wù)數(shù)據(jù) 的基本單元。 通常放在項(xiàng)目的model或entity包下。 ? DAO(數(shù)據(jù)訪問對(duì)象): DAO是連接業(yè)務(wù)邏輯和數(shù)據(jù)庫的橋

    2024年04月08日
    瀏覽(27)
  • SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理

    SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理

    本文主要從Controller層,Service層,Mapper層這三層架構(gòu)中記錄用到的各種注解 還有一些MyBatis用到的注解 持續(xù)更新到本人的畢設(shè)做完為止,太多了太多了根本學(xué)不完哈哈哈 用于建立HTTP請(qǐng)求與處理方法之間的映射關(guān)系,其中 XXX Mapping限定了提交http請(qǐng)求的方法 用于獲取URL中提交過來的

    2024年01月21日
    瀏覽(51)
  • SpringBoot框架分層(View層、Controller層、Service層、Mapper層、pojo層)

    SpringBoot框架分層(View層、Controller層、Service層、Mapper層、pojo層)

    ? SpringBoot框架一般分為View層、Controller層、Service層、Mapper層、pojo層。 View層:視圖層,根據(jù)接到的數(shù)據(jù)展示頁面給用戶 Controller層:響應(yīng)用戶需求,決定用什么視圖,需要準(zhǔn)備什么數(shù)據(jù)來顯示。Controller層負(fù)責(zé)前后端交互,接收前端請(qǐng)求,調(diào)用Service層,接收Service層返回的數(shù)據(jù)

    2024年02月07日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包