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

Spring Boot中的service層

這篇具有很好參考價(jià)值的文章主要介紹了Spring Boot中的service層。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

spring Boot中的service層是業(yè)務(wù)邏輯層,負(fù)責(zé)處理業(yè)務(wù)需求,封裝業(yè)務(wù)方法,調(diào)用dao層的數(shù)據(jù)操作1。service層一般是一個(gè)接口和一個(gè)實(shí)現(xiàn)類,用@Service注解標(biāo)注實(shí)現(xiàn)類2。service層的接口可以在controller層中調(diào)用,實(shí)現(xiàn)數(shù)據(jù)的傳遞和處理。

一個(gè)service層的示例代碼如下:

  • 首先,需要定義一個(gè)service層接口,例如ProductService.java,用于聲明業(yè)務(wù)方法,如增加、編輯、獲取和刪除產(chǎn)品。
  • 然后,需要定義一個(gè)service層實(shí)現(xiàn)類,例如ProductServiceImpl.java,用@Service注解標(biāo)注,并實(shí)現(xiàn)接口中的業(yè)務(wù)方法,調(diào)用dao層的數(shù)據(jù)操作。
  • 最后,在controller層中,用@Autowired注解自動(dòng)注入service層接口,并調(diào)用其方法,返回?cái)?shù)據(jù)給客戶端。

具體的代碼如下:

ProductService.java

package com.tutorialspoint.demo.service;

import java.util.Collection;

import com.tutorialspoint.demo.model.Product;

public interface ProductService {
    public abstract void createProduct(Product product);
    public abstract void updateProduct(String id, Product product);
    public abstract void deleteProduct(String id);
    public abstract Collection<Product> getProducts();
}

ProductServiceImpl.java

package com.tutorialspoint.demo.service;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.tutorialspoint.demo.model.Product;

@Service
public class ProductServiceImpl implements ProductService {
    private static Map<String, Product> productRepo = new HashMap<>();
    static {
        Product honey = new Product();
        honey.setId("1");
        honey.setName("Honey");
        productRepo.put(honey.getId(), honey);

        Product almond = new Product();
        almond.setId("2");
        almond.setName("Almond");
        productRepo.put(almond.getId(), almond);
    }
    @Override
    public void createProduct(Product product) {
        productRepo.put(product.getId(), product);
    }
    @Override
    public void updateProduct(String id, Product product) {
        productRepo.remove(id);
        product.setId(id);
        productRepo.put(id, product);
    }
    @Override
    public void deleteProduct(String id) {
        productRepo.remove(id);

    }
    @Override
    public Collection<Product> getProducts() {
        return productRepo.values();
    }
}

ProductServiceController.java文章來源地址http://www.zghlxwxcb.cn/news/detail-526075.html

package com.tutorialspoint.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.tutorialspoint.demo.model.Product;
import com.tutorialspoint.demo.service.ProductService;

@RestController
public class ProductServiceController {
   @Autowired
   ProductService productService;
   @RequestMapping(value = "/products")
   public ResponseEntity<Object> getProduct() {
      return new ResponseEntity<>(productService.getProducts(), HttpStatus.OK);
   }
   @RequestMapping(value = "/products/{id}", method = RequestMethod.PUT)
   public ResponseEntity<Object> updateProduct(@PathVariable("id") String id, @RequestBody Product product) {   
      productService.updateProduct(id, product);
      return new ResponseEntity<>("Product is updated successsfully", HttpStatus.OK);
   }
   @RequestMapping(value = "/products/{id}", method = RequestMethod.DELETE)
   public ResponseEntity<Object> delete(@PathVariable("id") String id) {   
      productService.deleteProduct(id);
      return new ResponseEntity<>("Product is deleted successsfully", HttpStatus.OK);
   }
   @RequestMapping(value = "/products", method = RequestMethod.POST)
   public ResponseEntity<Object> createProduct(@RequestBody Product product) {
      productService.createProduct(product);
      return new ResponseEntity<>("Product is created successfully", HttpStatus.CREATED);
   }
}

到了這里,關(guān)于Spring Boot中的service層的文章就介紹完了。如果您還想了解更多內(nèi)容,請?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)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • Spring Boot使用JUnit和Mockito進(jìn)行Service層單元測試

    ??在平時(shí)的開發(fā)當(dāng)中,一個(gè)項(xiàng)目往往包含了大量的方法,可能有成千上萬個(gè)。如何去保證這些方法產(chǎn)生的結(jié)果是我們想要的呢?那么在SpringBoot項(xiàng)目中我們是如何對Service層的方法進(jìn)行測試的呢? ??單元測試是一種軟件測試方法,用于測試代碼的最小可測試單元。在Java開發(fā)

    2024年02月03日
    瀏覽(23)
  • Spring Boot單元測試使用MockBean注解向Service注入Mock對象

    我們在測試時(shí)有一個(gè)Service,我們需要測試Service,但Service內(nèi)部依賴ServiceA、ServiceB,此時(shí)我們希望Mock ServiceA,ServiceB 注入真實(shí)對象。 在Spring Boot Test中使用@Spy注解標(biāo)記Service對象,但是其余真實(shí)對象無法注入,因?yàn)锧Spy注解只能部分模擬對象,而無法注入真實(shí)對象。在這種情況下

    2024年02月13日
    瀏覽(35)
  • 解決`java.lang.NoClassDefFoundError`在Nacos和Spring Boot集成中的問題

    解決`java.lang.NoClassDefFoundError`在Nacos和Spring Boot集成中的問題

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁——貓頭虎的博客?? ??《面試題大全專欄》 文章圖文并茂??生動(dòng)形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)入門篇)》學(xué)會(huì)Golang語言

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

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

    主要用于 定義與數(shù)據(jù)庫對象應(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)
  • 15.Spring Boot單元測試(Service、Mock、Feign、Http Rest API)

    15.Spring Boot單元測試(Service、Mock、Feign、Http Rest API)

    Spring Boot專欄目錄(點(diǎn)擊進(jìn)入…) **test**表示依賴的組件僅僅參與測試相關(guān)的工作,包括測試代碼的編譯和執(zhí)行,不會(huì)被打包包含進(jìn)去;spring-boot-starter-test是Spring Boot提供項(xiàng)目測試的工具包,內(nèi)置了多種測試工具,方便我們在項(xiàng)目中做單元測試、集成測試。 引入spring-boot-star

    2024年02月04日
    瀏覽(40)
  • 【Spring Boot】Spring Boot項(xiàng)目中如何查看springBoot版本和Spring的版本

    【Spring Boot】Spring Boot項(xiàng)目中如何查看springBoot版本和Spring的版本

    在項(xiàng)目中查看默認(rèn)版本有兩種方式如下 Spring Boot 的最新版本支持情況: 版本 發(fā)布時(shí)間 停止維護(hù)時(shí)間 停止商業(yè)支持 3.0.x 2022-11-24 2023-11-24 2025-02-24 2.7.x 2022-05-19 2023-11-18 2025-02-18 2.6.x 2021-12-17 2022-11-24 2024-02-24 2.5.x 2021-05-20 已停止 2023-08-24 2.4.x 2020-11-12 已停止 2023-02-23 2.3.x 2020-05-

    2024年02月11日
    瀏覽(45)
  • Spring Boot中的Actuator是什么?Spring Boot中的Starter依賴是什么?

    在Spring Boot中,Actuator是一種用于監(jiān)控和管理應(yīng)用程序的工具。它提供了一些額外的端點(diǎn)和功能,使開發(fā)人員能夠更好地了解和控制他們的應(yīng)用程序。 Actuator提供了以下功能: 指標(biāo)收集:Actuator可以收集并顯示有關(guān)應(yīng)用程序的指標(biāo),例如內(nèi)存使用情況、線程數(shù)、請求處理時(shí)間等

    2024年02月09日
    瀏覽(17)
  • <Spring Boot>開發(fā)基于三層架構(gòu)設(shè)計(jì):Dao層、Service層、Controller層及案例一

    三層架構(gòu)設(shè)計(jì):基于Spring Boot開發(fā)要使用三層架構(gòu): 數(shù)據(jù)訪問層(Dao)、業(yè)務(wù)邏輯層(Service)、控制層(Control-ler) (1)數(shù)據(jù)訪問層(Dao):Dao層是最底層的設(shè)計(jì),用戶操作數(shù)據(jù)庫。通過MyBatis持久化實(shí)現(xiàn)接口開發(fā),XML文件。Dao層的設(shè)計(jì)步驟:1、在數(shù)據(jù)庫中生成數(shù)據(jù)庫表 2通

    2024年02月15日
    瀏覽(23)
  • Spring Boot 中的 Spring Cloud Gateway

    Spring Boot 中的 Spring Cloud Gateway

    Spring Cloud Gateway 是一個(gè)基于 Spring Boot 的網(wǎng)關(guān)框架,它提供了一種統(tǒng)一的入口,將所有的請求路由到不同的后端服務(wù)中。Spring Cloud Gateway 采用了 Reactive 編程模型,可以處理大量并發(fā)請求,同時(shí)還具備負(fù)載均衡、熔斷、限流等功能。本文將介紹 Spring Cloud Gateway 的原理和使用方法

    2024年02月12日
    瀏覽(20)
  • spring boot 服務(wù)健康檢測返回OUT_OF_SERVICE,導(dǎo)致服務(wù)無法成功注冊到consul

    spring boot 服務(wù)健康檢測返回OUT_OF_SERVICE,導(dǎo)致服務(wù)無法成功注冊到consul

    健康檢測接口返回OUT_OF_SERVICE 從日志啟動(dòng)看,沒有任何報(bào)錯(cuò)信息;而且jvm進(jìn)程也啟動(dòng)成功。 關(guān)鍵的一點(diǎn)信息是,服務(wù)的swagger地址訪問也正常。 但是,consul上的服務(wù)狀態(tài)就是不健康。 當(dāng)然,重啟大法不好使。 增加配置項(xiàng): management.endpoint.health.show-details: always 可以看出,ela

    2024年02月14日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包