คำอธิบายประกอบพื้นฐานของ Spring Boot ที่ทุกคนควรรู้

เผยแพร่แล้ว: 2021-12-13

Java Spring Framework เป็นเฟรมเวิร์กโอเพ่นซอร์สและระดับองค์กรที่ใช้เพื่อสร้างแอปพลิเคชันแบบสแตนด์อโลนระดับโปรดักชั่นที่ทำงานบน Java Virtual Machine (JVM) ด้วยเหตุนี้ Java Spring Boot จึงเป็นเครื่องมือที่ช่วยให้การพัฒนาเว็บแอปพลิเคชันและไมโครเซอร์วิสง่ายขึ้นและเร็วขึ้นด้วย Spring Framework สำหรับสิ่งนี้ Java Spring Boot ใช้ประโยชน์จากความสามารถหลักสามประการ ได้แก่ การกำหนดค่าอัตโนมัติ วิธีการกำหนดค่าตามความคิดเห็น และศักยภาพในการสร้างแอปพลิเคชันแบบสแตนด์อโลน การผสมผสานของคุณสมบัติหลักเหล่านี้ทำให้มีเครื่องมือที่ช่วยให้นักพัฒนาสามารถตั้งค่าแอปพลิเคชันที่ใช้ Spring ได้โดยมีการกำหนดค่าเพียงเล็กน้อย

ก่อนคำอธิบายประกอบ ลักษณะการทำงานของ Spring Framework ส่วนใหญ่จะควบคุมการกำหนดค่า XML อย่างไรก็ตาม คำอธิบายประกอบของ Spring Boot ได้เปลี่ยนแปลงวิธีการกำหนดค่าการทำงานของ Spring Framework อย่างมาก

ในบทความนี้ เราจะพูดถึงคำอธิบายประกอบพื้นฐานบางส่วนใน Spring Framework

สารบัญ

คำอธิบายประกอบ Spring Boot คืออะไร?

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

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

คำอธิบายประกอบ Spring Boot ที่ทุกคนควรรู้

แม้ว่า Spring Boot จะใช้งานได้กับ Java, Groovy และ Kotlin แต่เราจะเน้นที่ Java ในขณะพูดคุยเกี่ยวกับคำอธิบายประกอบของ Spring Boot ที่สำคัญ

1. @การกำหนดค่า

@Configuration ใช้ในคลาสที่กำหนด bean แอนะล็อกของไฟล์คอนฟิกูเรชัน XML เป็นคำอธิบายประกอบระดับคลาสที่ใช้เป็นแหล่งที่มาของคำจำกัดความของ bean @Configuration คลาส Java ที่ใส่หมายเหตุประกอบเป็นคอนฟิกูเรชันในตัวเองและมีเมธอดในการกำหนดค่าและสร้างอินสแตนซ์ของการพึ่งพา

ตัวอย่าง:

@การกำหนดค่า

รถโดยสารสาธารณะ

{

@BeanBus เครื่องยนต์ ()

{

ส่งคืนรถบัสใหม่ ();

}

}

2. @ถั่ว

ทางเลือกแทนแท็ก XML <bean> คำอธิบายประกอบ @Bean ถูกใช้ที่ระดับเมธอดเพื่อระบุว่าเมธอดสร้าง bean เพื่อจัดการโดยคอนเทนเนอร์สปริง คำอธิบายประกอบนี้ทำงานร่วมกับ @Configuration เพื่อสร้าง Spring beans @Configuration มีเมธอดในการกำหนดค่าและยกตัวอย่างการพึ่งพา และเมธอดดังกล่าวมีคำอธิบายประกอบโดย @Bean

ตัวอย่าง:

@ถั่ว

ถั่วสาธารณะตัวอย่างถั่วตัวอย่าง ()

{

ส่งคืน BeanExample ใหม่ (),

}

3. @ComponentScan

คำอธิบายประกอบ @ComponentScan ใช้เพื่อสแกนแพ็กเกจของ bean มันถูกใช้ร่วมกับคำอธิบายประกอบ @Configuration เพื่อให้ Spring ทราบแพ็คเกจที่ต้องสแกนหาส่วนประกอบที่มีคำอธิบายประกอบ

ตัวอย่าง:

@ComponentScan(basePackages = “com.xyz”)

@การกำหนดค่า

ScanComponent คลาสสาธารณะ

{

//…

}

4. @ส่วนประกอบ

คำอธิบายประกอบ @Component ใช้ในคลาสเพื่อแสดงองค์ประกอบสปริง เป็นคำอธิบายประกอบระดับคลาสที่แปลงคลาสเป็น Spring bean ระหว่างการสแกนอัตโนมัติ

ตัวอย่าง:

@ส่วนประกอบ

ครูประจำชั้นสาธารณะ

{

……

}

5. @EnableAutoConfiguration

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

6. @SpringBootApplication

คำอธิบายประกอบ @SpringBootApplication เพิ่มสามคำอธิบายประกอบ – @Configuration, @EnableAutoConfiguration และ @ComponentScan มันถูกใช้ในคลาสแอปพลิเคชันขณะตั้งค่าโปรเจ็กต์ Spring Boot และคลาสที่มีคำอธิบายประกอบด้วย @SpringBootApplication จะถูกวางไว้ในแพ็คเกจพื้นฐาน @SpringBootApplication ทำการสแกนส่วนประกอบ แต่เฉพาะแพ็คเกจย่อยเท่านั้น

7. @ที่เก็บ

คำอธิบายประกอบ @Repository ใช้ในคลาส Java ที่เข้าถึงฐานข้อมูลโดยตรง ทำงานเป็นเครื่องหมายสำหรับคลาสที่ทำหน้าที่ของ Data Access Object หรือ repository

ตัวอย่าง:

@ที่เก็บของ

TestRepository คลาสสาธารณะ

{

โมฆะสาธารณะ ลบ()

{

// รหัสความคงอยู่

}

}

8. @บริการ

เป็นหมายเหตุระดับคลาสที่ทำเครื่องหมายคลาส Java ที่ดำเนินการบริการ เช่น การดำเนินการตรรกะทางธุรกิจ การคำนวณ หรือการเรียก API ภายนอก คำอธิบายประกอบ @Service เป็นรูปแบบพิเศษของคำอธิบายประกอบ @Component สำหรับใช้ในชั้นบริการ

ตัวอย่าง:

@บริการ

TestService คลาสสาธารณะ

{

บริการโมฆะสาธารณะ1()

{

// รหัสธุรกิจ

}

}

9. @Autowired

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

10. @Controller

คำอธิบายประกอบ @Controller ใช้ในคลาส Java ที่ทำหน้าที่เป็นตัวควบคุมในแอปพลิเคชัน อนุญาตให้ตรวจจับคลาสส่วนประกอบอัตโนมัติใน classpath และยังลงทะเบียนอัตโนมัติของ bean definition สำหรับพวกมันด้วย โดยทั่วไปคำอธิบายประกอบ @Controller จะใช้กับ @RequestMapping และคลาส Java ที่มีคำอธิบายประกอบด้วย @Controller สามารถจัดการการแมปคำขอได้หลายรายการ

ตัวอย่าง:

@Controller

@RequestMapping (“รถยนต์”)

คลาสสาธารณะ CarsController

{

@RequestMapping(value= “/{name}”, method= RequestMethod.GET)

พนักงานสาธารณะ getCarsByName()

{

คืนรถแม่แบบ;

}

}

11. @RequestMapping

คำอธิบายประกอบ @RequestMapping ใช้ทั้งในระดับเมธอดและคลาส ทำหน้าที่จับคู่คำขอเว็บกับเมธอดตัวจัดการและคลาสตัวจัดการที่ระบุ เมื่อใช้ @RequestMapping กับเมธอด จะให้ URL ที่การดำเนินการเมธอดตัวจัดการจะเกิดขึ้น ในทางตรงกันข้าม เมื่อใช้คำอธิบายประกอบที่ระดับของคลาส จะสร้าง URL พื้นฐานที่จะใช้คอนโทรลเลอร์ ดังนั้น แต่ละเมธอดตัวจัดการจะมีการแมปคำขอตามลำดับ ในขณะที่การแมปคำขอระดับคลาสยังคงเหมือนเดิม

ตัวอย่าง:

@Controller

คลาสสาธารณะ FlowersController

{

@RequestMapping (“/สีแดง/ดอกไม้”)

สตริงสาธารณะ getAllFlowers (รุ่นโมเดล)

{

//รหัสสมัคร

ส่งคืน "รายการดอกไม้";

}

12. @รอบคัดเลือก

@Qualifier ใช้ร่วมกับ @Autowired เมื่อจำเป็นต้องมีการควบคุมเพิ่มเติมในกระบวนการฉีดการพึ่งพา อาจระบุคำอธิบายประกอบ @Qualifier บนพารามิเตอร์เมธอดหรืออาร์กิวเมนต์ตัวสร้างแต่ละรายการ ความสับสนมักเกิดขึ้นเมื่อนักพัฒนาสร้างถั่วประเภทเดียวกันมากกว่าหนึ่งชนิด แต่ต้องมีเพียงหนึ่งในถั่วเท่านั้นที่เชื่อมต่อกับคุณสมบัติ คำอธิบายประกอบ @Qualifier มีประโยชน์ในการขจัดความสับสนเหล่านี้

ตัวอย่าง:

@ส่วนประกอบ

คลาสสาธารณะ BeanB1 ใช้ BeanInterface {

//

}

@ส่วนประกอบ

คลาสสาธารณะ BeanB2 ใช้ BeanInterface {

//

}

ในตัวอย่างข้างต้น BeanInterface ถูกใช้งานโดย BeanB1 และ BeanB2 สองตัว ตอนนี้ ถ้า BeanA เชื่อมต่ออัตโนมัติกับอินเทอร์เฟซนี้ Spring จะไม่ทราบว่าควรใส่การใช้งานใดในสองรายการ คุณสามารถแก้ปัญหานี้ได้โดยใช้คำอธิบายประกอบ @Qualifier ด้วยคำอธิบายประกอบนี้ Spring จะรู้ว่าถั่วใดที่จะ autowire

@ส่วนประกอบ

คลาสสาธารณะ BeanA {

@Autowired

@รอบคัดเลือก(“beanB2”)

การพึ่งพา BeanInterface ส่วนตัว

}

13. @ค่า

คำอธิบายประกอบ @Value ใช้ในฟิลด์ พารามิเตอร์เมธอด และระดับพารามิเตอร์คอนสตรัคเตอร์ มันหมายถึงนิพจน์ค่าเริ่มต้นสำหรับพารามิเตอร์หรือฟิลด์เพื่อเริ่มต้นคุณสมบัติด้วย

14. @ขี้เกียจ

คำอธิบายประกอบ @Lazy ใช้กับคลาสคอมโพเนนต์ เมื่อเริ่มต้น การขึ้นต่อกันแบบเดินสายอัตโนมัติทั้งหมดจะถูกสร้างขึ้นและกำหนดค่าตามค่าเริ่มต้น แต่คำอธิบายประกอบ @Lazy สามารถใช้ได้หากนักพัฒนาต้องการเริ่มต้น bean อย่างเกียจคร้าน ดังนั้น bean จึงถูกสร้างขึ้นและเริ่มต้นเมื่อมีการร้องขอเท่านั้น คำอธิบายประกอบ @Lazy ยังสามารถใช้กับคลาส @Configuration ได้ ซึ่งหมายความว่าเมธอด @Bean ทั้งหมดใน @Configuration นั้นจะเริ่มทำงานอย่างเกียจคร้าน

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

วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก Liverpool John Moores University

หากคุณเป็นนักวิทยาศาสตร์ด้านข้อมูลที่มีความทะเยอทะยาน นี่คือโอกาสในการเรียนรู้จากสิ่งที่ดีที่สุด upGrad เปิดสอนหลักสูตรวิทยาศาสตรมหาบัณฑิตออนไลน์ในสาขาวิทยาศาสตร์ข้อมูลร่วมกับมหาวิทยาลัย Liverpool John Moores ซึ่งออกแบบมาเป็นพิเศษสำหรับมืออาชีพด้านการทำงานที่ต้องการฝึกฝนทักษะและความรู้ด้านวิทยาศาสตร์ข้อมูล

ต่อไปนี้คือไฮไลท์ของโปรแกรมบางส่วน:

  • ปริญญาโทจาก LJMU และ Executive PGP จาก IIT Bangalore
  • การเรียนรู้มากกว่า 500 ชั่วโมงเต็มไปด้วยเซสชันสด กรณีศึกษา และโครงการ
  • ครอบคลุมเครื่องมือและซอฟต์แวร์มากกว่า 14+ รายการ
  • สามความเชี่ยวชาญเฉพาะด้าน
  • ความช่วยเหลือด้านอาชีพเฉพาะ 360 องศา
  • การเรียนรู้แบบเพียร์และเครือข่ายอุตสาหกรรม

โปรแกรมการเรียนรู้เชิงลึกที่เกี่ยวข้องกับอุตสาหกรรมของ upGrad ส่งผลกระทบต่อมืออาชีพที่ทำงานมากกว่า 500,000 คนทั่วโลก และยังคงกำหนดมาตรฐานระดับสูงในอุตสาหกรรม EdTech ที่สูงขึ้นต่อไป ดังนั้น สมัครวันนี้และเข้าร่วมกับฐานผู้เรียนทั่วโลกกว่า 40,000+ แห่งที่กระจายอยู่ใน 85 ประเทศ!

เรียนรู้ หลักสูตรวิทยาศาสตร์ข้อมูล ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

จุดประสงค์ของสตาร์ทเตอร์ Spring Boot คืออะไร?

Spring Boot starters เป็นตัวบ่งชี้การพึ่งพาที่อนุญาตให้เพิ่ม jars ใน classpath starter ทุกคนมีรูปแบบการตั้งชื่อต่อไปนี้ในเฟรมเวิร์ก Spring Boot: spring-boot-starter-* โดยที่ * หมายถึงประเภทแอปพลิเคชันเฉพาะ

อะไรคือความแตกต่างระหว่าง @SpringBootApplication และ @EnableAutoConfiguration

งานหลักของ @EnableAutoConfiguration คือการเปิดใช้งานคุณสมบัติการกำหนดค่าอัตโนมัติของแอปพลิเคชัน Spring Boot ในทางตรงกันข้าม @SpringBootApplication จะรวมคำอธิบายประกอบสามรายการ - @ComponentScan สำหรับการสแกนส่วนประกอบ, @Configuration สำหรับการกำหนดค่าตาม Java บนเฟรมเวิร์ก Spring และ @EnableAutoConfiguration สำหรับการอนุญาตการกำหนดค่าอัตโนมัติในแอปพลิเคชัน Spring Boot

Spring boot ทำงานโดยไม่มี SpringBootApplication ได้หรือไม่

ไม่จำเป็นต้องใช้ @SpringBootApplication เพื่อสร้างแอปพลิเคชัน Spring Boot คุณยังคงใช้ @EnableAutoConfiguration และ @Configuration แยกกันได้