مكونات وعناصر الخدمات في الإقلاع او التمهيد الربيع سبرينج بوت Spring Boot Service Components#

مكونات وعناصر الخدمات في الإقلاع او التمهيد الربيع سبرينج بوت

 Spring Boot  Service Components#


مكونات وعناصر الخدمات في الإقلاع او التمهيد الربيع سبرينج بوت Spring Boot  Service Components#

مكونات الخدمة هي ملف الفئة الذي يحتوي على تعليق توضيحي علىService.  تُستخدم ملفات الفئة هذه لكتابة منطق العمل في طبقة مختلفة ، مفصولة عن ملف فئةRestController.  يتم عرض منطق إنشاء ملف فئة مكون خدمة هنا -

public interface ProductService {
}
الفئة التي تنفذ واجهة مع تعليق توضيحي علىService كما هو موضح -
@Service
public class ProductServiceImpl implements ProductService {
}
لاحظ أننا في هذا البرنامج التعليمي ، نستخدم واجهة (API) الخاصة بخدمة المنتج لتخزين المنتجات واسترجاعها وتحديثها وحذفها.  لقد كتبنا منطق العمل في ملف فئةRestController نفسه.  الآن ، سنقوم بنقل رمز منطق العمل من وحدة التحكم إلى مكون الخدمة.
يمكنك إنشاء واجهة تحتوي على طرق إضافة وتحرير والحصول على وحذف باستخدام الكود كما هو موضح أدناه -

package com.ahmedalmahallawi.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();
}

تتيح لك التعليمة البرمجية التالية إنشاء فئة تقوم بتنفيذ واجهة ProductService مع تعليق توضيحي علىService وكتابة منطق العمل لتخزين المنتج واسترجاعه وحذفه وتحديثه.
package com.ahmedalmahallawi.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();
   }
}
يُظهر الرمز هنا ملف فئة Rest Controller ، ونحن هناAutowired واجهة ProductService وتسمى الأساليب.
package com.ahmedalmahallawi.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);
   }
}
يظهر كود فئة POJO - Product.java هنا -
package com.ahmedalmahallawi.demo.model;

public class Product {
   private String id;
   private String name;

   public String getId() {
      return id;
   }
   public void setId(String id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}
فيما يلي تطبيق Spring Boot رئيسي -

package com.ahmedalmahallawi.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}
يظهر كود Maven build - pom.xml أدناه -
xml version = "1.0" encoding = "UTF-8"?>
 xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   
   4.0.0
com.ahmedalmahallawi.demo demo 0.0.1-SNAPSHOT jar demo Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
يظهر كود Gradle Build - build.gradle أدناه -
buildscript {
   ext {
      springBootVersion = '1.5.8.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}
dependencies {
   compile('org.springframework.boot:spring-boot-starter-web')
   testCompile('org.springframework.boot:spring-boot-starter-test')
}

يمكنك إنشاء ملف JAR قابل للتنفيذ ، وتشغيل تطبيق Spring Boot باستخدام أوامر Maven أو Gradle الواردة أدناه -
 بالنسبة إلى Maven ، استخدم الأمر كما هو موضح أدناه -
mvn clean install
بعد "BUILD SUCCESS" ، يمكنك العثور على ملف JAR ضمن الدليل الهدف.
 بالنسبة إلى Gradle ، يمكنك استخدام الأمر كما هو موضح أدناه -
gradle clean build

بعد "BUILD SUCCESSFUL" ، يمكنك العثور على ملف JAR ضمن دليل build / libs.
 قم بتشغيل ملف JAR باستخدام الأمر الموضح أدناه -
java –jar  
الآن ، بدأ التطبيق على منفذ Tomcat 8080 كما هو موضح في الصورة أدناه -
BUILD SUCCESSFUL
الآن ، اضغط على عناوين URL أدناه في تطبيق POSTMAN ويمكنك رؤية الإخراج كما هو موضح أدناه -
 عنوان URL لـ GET API هو - http: // localhost: 8080 / products

Postman Application GET API URL

عنوان URL لواجهة برمجة تطبيقات POST هو - http: // localhost: 8080 / products
Postman Application POST API URL

PUT API URL هو - http: // localhost: 8080 / products / 3
Postman Application PUT API URL
عنوان URL لـ DELETE API هو - http: // localhost: 8080 / products / 3

Postman Application DELETE API URL








المشاركات الشائعة من هذه المدونة

Software Development Life Cycle دورة حياة تطوير البرمجيات او النظام

نموذج الشلال بالتفصيل دورة حياة تطوير النظام او البرمجيات SDLC Waterfall Model#