精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

SpringBoot2.0快速構建服務組件全步驟

前言

我們是自2013年創立以來的成都網站建設公司,提供網站建設,電商網站設計開發,外貿網站建設,響應式網頁設計,小程序設計、等服務。為客戶創造有價值的品牌營銷體驗,讓互聯網提升企業的競爭力!

所謂的服務組件(Service Component)— 就是用于處理系統業務邏輯的類,如果按照系統分層設計理論來劃分,服務組件是位于業務層當中的類。在Spring Boot中,服務組件是一個被**@Service**注解進行注釋的類,這些類用于編寫系統的業務代碼。在本章節中,將講解如何創建并使用服務組件。

在開始正文之前,先來看兩段示例代碼。使用服務組件之前,我們需要定義服務組件接口類,用于索引服務組件提供的服務,代碼如下所示:

public interface UserService{
 // TODO ...
}

然后,需要使用**@Service**注解對服務組件接口實現類進行注釋,演示代碼如下:

@Service(value="userService")
public class UserServiceImpl implements UserService{
 //TODO ...
}

最后,使用**@Autowired**注解來自動引用服務組件,代碼如下:

@Controller
public class DemoController{
 @Autowired
 UserService userService;
 //TODO ...
}

在本次講解中,我們依然以對用戶的增、刪、改、查為案例,將控制器中的業務方法遷移到服務組件中。

1. 創建服務接口

創建一個包含添加用戶、更新用戶、刪除用戶和查詢用戶的服務接口類 — 用戶服務組件接口類。詳細代碼如下:

package com.ramostear.application.service;

import com.ramostear.application.model.User;

import java.util.Collection;

/**
 * Created by ramostear on 2019/3/11 0011.
 */
public interface UserService {

 /**
 * create user
 * @param user
 */
 void create(User user);

 /**
 * update user info by ID
 * @param id
 * @param user
 */
 void update(long id,User user);

 /**
 * delete user by ID
 * @param id
 */
 void delete(long id);

 /**
 * query all user
 * @return
 */
 Collection findAll();
}

2. 實現服務接口

創建一個接口實現類,用于實現其中的增、刪、改、查四個業務方法,并用**@Service**注解進行標注,具體代碼如下:

package com.ramostear.application.service.impl;

import com.ramostear.application.model.User;
import com.ramostear.application.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * @author ramostear
 * @create-time 2019/3/11 0011-4:29
 * @modify by :
 * @since:
 */
@Service(value="userService")
public class UserServiceImpl implements UserService {

 private static Map userRepo = new HashMap<>();

 @PostConstruct
 public void initUserRepo(){
 User admin = new User();
 admin.setId(1).setName("admin");
 userRepo.put(admin.getId(),admin);

 User editor = new User();
 editor.setId(2).setName("editor");
 userRepo.put(editor.getId(),editor);
 }
 @Override
 public void create(User user) {
 userRepo.put(user.getId(),user);
 }

 @Override
 public void update(long id, User user) {
 userRepo.remove(id);
 user.setId(id);
 userRepo.put(id,user);
 }

 @Override
 public void delete(long id) {
 userRepo.remove(id);
 }

 @Override
 public Collection findAll() {
 return userRepo.values();
 }
}

3. 使用服務組件

接下來,定義一個用戶控制器,使用**@Autowired**注解來應用用戶服務組件,實現對用戶的增、刪、改、查功能:

package com.ramostear.application.controller;

import com.ramostear.application.model.User;
import com.ramostear.application.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

/**
 * @author ramostear
 * @create-time 2019/3/11 0011-4:42
 * @modify by :
 * @since:
 */
@RestController
public class UserController {

 @Autowired
 UserService userService;


 @GetMapping("/users")
 public ResponseEntity users(){
 return new ResponseEntity<>(userService.findAll(), HttpStatus.OK);
 }

 @PostMapping("/users")
 public ResponseEntity create(@RequestBody User user){
 userService.create(user);
 return new ResponseEntity<>("User is created successfully.",HttpStatus.CREATED);
 }

 @PutMapping("/users/{id}")
 public ResponseEntity update(@PathVariable(name="id") long id,@RequestBody User user){
 userService.update(id,user);
 return new ResponseEntity<>("User is updated successfully.",HttpStatus.OK);
 }

 @DeleteMapping("/users/{id}")
 public ResponseEntity delete(@PathVariable(name = "id")long id){
 userService.delete(id);
 return new ResponseEntity<>("User is deleted successfully.",HttpStatus.OK);
 }
}

4. 數據模型

用戶對象的代碼沿用以往章節的User.java代碼:

package com.ramostear.application.model;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * @author ramostear
 * @create-time 2019/3/6 0006-3:12
 * @modify by :
 * @since:
 */
@Getter
@Setter
@NoArgsConstructor
public class User {
 private long id;
 private String name;

 public User setId(long id){
 this.id = id;
 return this;
 }

 public User setName(String name){
 this.name = name;
 return this;
 }
}

注:應用程序主類和Maven build文件與之前章節的代碼形同,不再列舉。

5. 運行測試

啟動Spring Boot應用程序,然后打開Postman測試應用程序,分別進行如下的測試。

GET 請求:獲取所有的用戶信息。

URL地址:http://localhost:8080/users

Spring Boot 2.0快速構建服務組件全步驟

獲取用戶信息

POST 請求:新增一位用戶信息

URL地址:http://localhost:8080/users

請求參數:{“id”:3,"name":"reader"}

Spring Boot 2.0快速構建服務組件全步驟

新增用戶

PUT請求:修改用戶信息

URL地址:http://localhost:8080/users/3

請求參數:{“id”:3,"name":"ramostear"}

 Spring Boot 2.0快速構建服務組件全步驟

修改用戶

DELETE請求:刪除用戶信息

URL地址:http://localhost:8080/users/3

Spring Boot 2.0快速構建服務組件全步驟刪除用戶

6. 附件

本章節用于演示的項目源碼已經上傳到Github代碼倉庫,你可以通過下面的地址鏈接免費獲取本章節的全部源碼信息:

github.com/ramostear/S …(本地下載)

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對創新互聯的支持。


新聞標題:SpringBoot2.0快速構建服務組件全步驟
標題來源:http://m.jcarcd.cn/article/psosdd.html 主站蜘蛛池模板: 91九色| 国产精品免费视频 | 国产精品对白 | 欧美午夜网 | 国产农村妇女精品 | 国产成视频 | 成人福利免费视频 | 国内精品视频一区 | 国产三区四区五区 | 国产精品第60页 | 国产精品亚洲片 | 欧美一区韩国二区老 | 午夜在线成人精品 | 91大神在线电影 | 国产福利在线观看永 | 国产精品毛多多水多 | 国产高清免费视频 | 日韩精品美女视频 | 午夜成人免费片 | 九一香蕉 | 欧美日韩性生活视频 | 日韩十国产十欧美 | 国产精品专区第二 | 国产涩涩视频在 | 尤物视频 | 成人欧美日韩一区 | 91精品福利社 | 中文字幕日韩欧美 | 97se国产在线 | 日本成年在线网站 | 91精品在线看 | 欧洲亚洲日产 | 日本三级免费观看 | 区视频在线| 国产欧美性爱 | 国语免费 | 国产精品我不卡 | 国产老熟女aⅴ | 欧美在线激情视频 | 国产网站免费视频 | 国产视频一区 |