Spring Boot - บทนำ

Spring Boot เป็นเฟรมเวิร์กที่ใช้ Java แบบโอเพนซอร์สที่ใช้สร้างไมโครเซอร์วิส ได้รับการพัฒนาโดย Pivotal Team และใช้ในการสร้างแอปพลิเคชันสปริงแบบสแตนด์อโลนและการผลิต บทนี้จะให้ข้อมูลเบื้องต้นเกี่ยวกับ Spring Boot และทำความคุ้นเคยกับแนวคิดพื้นฐาน

Micro Service คืออะไร?

Micro Service เป็นสถาปัตยกรรมที่ช่วยให้นักพัฒนาสามารถพัฒนาและปรับใช้บริการได้อย่างอิสระ แต่ละบริการที่ทำงานมีกระบวนการของตัวเองและทำให้ได้รูปแบบน้ำหนักเบาเพื่อรองรับการใช้งานทางธุรกิจ

ข้อดี

บริการไมโครมอบข้อดีดังต่อไปนี้ให้กับนักพัฒนา -

  • ใช้งานง่าย
  • ปรับขนาดได้ง่าย
  • เข้ากันได้กับตู้คอนเทนเนอร์
  • การกำหนดค่าขั้นต่ำ
  • เวลาในการผลิตน้อยลง

Spring Boot คืออะไร?

Spring Boot เป็นแพลตฟอร์มที่ดีสำหรับนักพัฒนา Java ในการพัฒนาแอปพลิเคชัน Spring แบบสแตนด์อโลนและเกรดการผลิตที่คุณสามารถทำได้ just run. คุณสามารถเริ่มต้นด้วยการกำหนดค่าขั้นต่ำโดยไม่จำเป็นต้องตั้งค่าการกำหนดค่า Spring ทั้งหมด

ข้อดี

Spring Boot มอบข้อดีดังต่อไปนี้ให้กับนักพัฒนา -

  • เข้าใจง่ายและพัฒนาแอพพลิเคชั่นสปริง
  • เพิ่มผลผลิต
  • ช่วยลดเวลาในการพัฒนา

เป้าหมาย

Spring Boot ได้รับการออกแบบโดยมีเป้าหมายดังต่อไปนี้ -

  • เพื่อหลีกเลี่ยงการกำหนดค่า XML ที่ซับซ้อนใน Spring
  • เพื่อพัฒนาแอพพลิเคชั่น Spring ที่พร้อมใช้งานจริงในวิธีที่ง่ายขึ้น
  • เพื่อลดเวลาในการพัฒนาและเรียกใช้แอปพลิเคชันอย่างอิสระ
  • เสนอวิธีที่ง่ายกว่าในการเริ่มต้นใช้งานแอปพลิเคชัน

ทำไมต้อง Spring Boot

คุณสามารถเลือก Spring Boot ได้เนื่องจากคุณสมบัติและประโยชน์ที่มอบให้ที่นี่ -

  • มีวิธีที่ยืดหยุ่นในการกำหนดค่า Java Beans, การกำหนดค่า XML และธุรกรรมฐานข้อมูล

  • ให้การประมวลผลชุดที่มีประสิทธิภาพและจัดการปลายทาง REST

  • ใน Spring Boot ทุกอย่างจะถูกกำหนดค่าโดยอัตโนมัติ ไม่จำเป็นต้องกำหนดค่าด้วยตนเอง

  • มีแอปพลิเคชั่นสปริงตามคำอธิบายประกอบ

  • ช่วยลดการจัดการการพึ่งพา

  • รวมถึงคอนเทนเนอร์ Servlet ในตัว

มันทำงานอย่างไร?

Spring Boot จะกำหนดค่าแอปพลิเคชันของคุณโดยอัตโนมัติตามการอ้างอิงที่คุณเพิ่มลงในโปรเจ็กต์โดยใช้ @EnableAutoConfigurationคำอธิบายประกอบ ตัวอย่างเช่นถ้าฐานข้อมูล MySQL อยู่บน classpath ของคุณ แต่คุณไม่ได้กำหนดค่าการเชื่อมต่อฐานข้อมูลใด ๆ Spring Boot จะกำหนดค่าฐานข้อมูลในหน่วยความจำโดยอัตโนมัติ

จุดเริ่มต้นของแอปพลิเคชันสปริงบูตคือคลาสที่มี @SpringBootApplication คำอธิบายประกอบและวิธีการหลัก

Spring Boot จะสแกนส่วนประกอบทั้งหมดที่รวมอยู่ในโปรเจ็กต์โดยอัตโนมัติโดยใช้ @ComponentScan คำอธิบายประกอบ

สปริงบูตสตาร์ท

การจัดการการจัดการการพึ่งพาเป็นงานที่ยากสำหรับโครงการขนาดใหญ่ Spring Boot แก้ไขปัญหานี้โดยจัดเตรียมชุดการอ้างอิงเพื่อความสะดวกของนักพัฒนา

ตัวอย่างเช่นหากคุณต้องการใช้ Spring และ JPA สำหรับการเข้าถึงฐานข้อมูลก็เพียงพอแล้วหากคุณรวมไว้ spring-boot-starter-data-jpa การพึ่งพาในโครงการของคุณ

โปรดทราบว่า Spring Boot starters ทั้งหมดจะเป็นไปตามรูปแบบการตั้งชื่อเดียวกัน spring-boot-starter- * โดยที่ * ระบุว่าเป็นประเภทของแอปพลิเคชัน

ตัวอย่าง

ดู Spring Boot starters ต่อไปนี้ที่อธิบายไว้ด้านล่างเพื่อความเข้าใจที่ดีขึ้น -

Spring Boot Starter Actuator dependencyใช้เพื่อตรวจสอบและจัดการแอปพลิเคชันของคุณ รหัสดังแสดงด้านล่าง -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Spring Boot Starter Security dependencyใช้สำหรับ Spring Security รหัสดังแสดงด้านล่าง -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Spring Boot Starter web dependencyใช้ในการเขียน Rest Endpoints รหัสดังแสดงด้านล่าง -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot Starter Thyme Leaf dependencyใช้ในการสร้างเว็บแอปพลิเคชัน รหัสดังแสดงด้านล่าง -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Spring Boot Starter Test dependencyใช้สำหรับเขียนกรณีทดสอบ รหัสดังแสดงด้านล่าง -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
</dependency>

การกำหนดค่าอัตโนมัติ

Spring Boot Auto Configuration จะกำหนดค่าแอปพลิเคชัน Spring ของคุณโดยอัตโนมัติตามการอ้างอิง JAR ที่คุณเพิ่มในโปรเจ็กต์ ตัวอย่างเช่นถ้าฐานข้อมูล MySQL อยู่บนพา ธ คลาสของคุณ แต่คุณไม่ได้กำหนดค่าการเชื่อมต่อฐานข้อมูลใด ๆ Spring Boot จะกำหนดค่าฐานข้อมูลในหน่วยความจำโดยอัตโนมัติ

เพื่อจุดประสงค์นี้คุณต้องเพิ่ม @EnableAutoConfiguration คำอธิบายประกอบหรือ @SpringBootApplicationคำอธิบายประกอบไปยังไฟล์คลาสหลักของคุณ จากนั้นแอปพลิเคชัน Spring Boot ของคุณจะได้รับการกำหนดค่าโดยอัตโนมัติ

ปฏิบัติตามรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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

@EnableAutoConfiguration
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}

แอปพลิเคชัน Spring Boot

จุดเริ่มต้นของ Spring Boot Application คือคลาสที่มี @SpringBootApplicationคำอธิบายประกอบ คลาสนี้ควรมีเมธอดหลักในการรันแอพพลิเคชั่น Spring Boot@SpringBootApplication คำอธิบายประกอบรวมถึงการกำหนดค่าอัตโนมัติการสแกนส่วนประกอบและการกำหนดค่า Spring Boot

หากคุณเพิ่ม @SpringBootApplication คำอธิบายประกอบในชั้นเรียนคุณไม่จำเป็นต้องเพิ่มไฟล์ @EnableAutoConfiguration, @ComponentScan และ @SpringBootConfigurationคำอธิบายประกอบ @SpringBootApplication คำอธิบายประกอบรวมถึงคำอธิบายประกอบอื่น ๆ ทั้งหมด

ปฏิบัติตามรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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);
   }
}

การสแกนส่วนประกอบ

แอปพลิเคชัน Spring Boot จะสแกนการประกาศถั่วและแพ็คเกจทั้งหมดเมื่อแอปพลิเคชันเริ่มต้น คุณต้องเพิ่มไฟล์@ComponentScan คำอธิบายประกอบสำหรับไฟล์คลาสของคุณเพื่อสแกนส่วนประกอบของคุณที่เพิ่มในโครงการของคุณ

ปฏิบัติตามรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}