JavaRush /จาวาบล็อก /Random-TH /ความรู้เบื้องต้นเกี่ยวกับ Java EE
zor07
ระดับ
Санкт-Петербург

ความรู้เบื้องต้นเกี่ยวกับ Java EE

เผยแพร่ในกลุ่ม
วันนี้เราจะพูดถึงมันคืออะไร - Java EE: มันประกอบด้วยอะไร อะไรคือคุณสมบัติของสถาปัตยกรรมของแอปพลิเคชัน Java EE และเราจะให้คำอธิบายเกี่ยวกับเทคโนโลยีต่างๆ ของแพลตฟอร์มนี้ หัวข้อนี้กว้างขวาง แต่เราจะไม่หยุดอยู่แค่เพียงข้อมูลพื้นฐาน ในตอนท้ายเราจะทำการเปรียบเทียบ Java EE กับ Spring Framework เล็กน้อยและตอบคำถาม: “ อะไรจะดีไปกว่าการเรียนรู้” (สปอยเลอร์: แน่นอนคุณต้องเรียนรู้ทุกอย่าง =) ) รู้เบื้องต้นเกี่ยวกับ Java EE - 1เริ่มจากพื้นฐานกันก่อน

Java EE - มันคืออะไร?

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

การพัฒนาจาวา EE

Java EE ได้รับการพัฒนาผ่าน Java Community Process (JCP) ซึ่งก่อตั้งขึ้นในปี 1998 ช่วยให้ผู้มีส่วนได้เสียมีส่วนร่วมในการกำหนดข้อกำหนดแพลตฟอร์มภาษา Java เวอร์ชันอนาคต พื้นฐานของกระบวนการนี้คือ JSR (Java Specification Request) ซึ่งเป็นเอกสารอย่างเป็นทางการที่อธิบายข้อกำหนดและเทคโนโลยีที่เสนอให้เพิ่มลงในแพลตฟอร์ม Java คำขอดังกล่าวจัดทำโดยสมาชิกชุมชน - นักพัฒนาทั่วไปและบริษัท อย่างหลัง ได้แก่ Oracle, Red Hat, IBM, Apache และอื่นๆ อีกมากมาย เหล่านั้น. พวกเขาเสนอคุณสมบัติใหม่และสารพัดเพื่อการพิจารณาที่พวกเขาต้องการรวมไว้ใน Java จากนั้นพวกเขาก็ลงคะแนนเสียงโดยพิจารณาจากการตัดสินใจว่าจะรวมอะไรไว้ในเวอร์ชันถัดไป ประวัติเวอร์ชัน Java EE มีลักษณะดังนี้:
  • J2EE 1.2 (ธันวาคม 2542)
  • J2EE 1.3 (กันยายน 2544)
  • J2EE 1.4 (พฤศจิกายน 2546)
  • Java EE 5 (พฤษภาคม 2549)
  • Java EE 6 (ธันวาคม 2552)
  • Java EE 7 (พฤษภาคม)
  • Java EE 8 (สิงหาคม 2017)
  • จาการ์ตา EE 8 (กันยายน 2019)
ในปี 2560 เหตุการณ์สำคัญใหม่ในการพัฒนาแพลตฟอร์มเกิดขึ้น: Oracle โอนการควบคุมการพัฒนา Java EE ไปยัง Eclipse Foundation และในเดือนเมษายน 2018 Java EE ได้เปลี่ยนชื่อเป็น Jakarta EE ซึ่งเข้ากันได้กับ Java EE 8 อย่างสมบูรณ์

สถาปัตยกรรมแอปพลิเคชัน Java EE

แนะนำสั้น ๆ เพื่อให้เข้าใจง่ายขึ้น เรามาพูดถึงโครงสร้างของแอปพลิเคชัน Java EE และคำศัพท์บางคำที่เราจะใช้เพิ่มเติมกัน แอปพลิเคชัน Java EE มีโครงสร้างที่มีคุณสมบัติหลักสองประการ:
  • ประการแรกหลายระดับ แอปพลิเคชัน Java EE มีหลายระดับ และเราจะพูดถึงรายละเอียดเพิ่มเติมในภายหลัง
  • ประการที่สอง การทำรัง มีเซิร์ฟเวอร์ Java EE (หรือแอปพลิเคชันเซิร์ฟเวอร์) โดยมีคอนเทนเนอร์ส่วนประกอบอยู่ภายใน ส่วนประกอบของคอนเทนเนอร์เหล่านี้ (บิงโก!)
เพื่ออธิบายสถาปัตยกรรมของแอปพลิเคชัน Java EE เรามาพูดถึงเลเยอร์กันก่อน มีระดับอะไรบ้าง? เทคโนโลยี Java EE ใดบ้างที่ใช้ในระดับที่แตกต่างกัน ต่อไป เราจะหารือถึงวิธีการเชื่อมต่อระหว่างแอปพลิเคชันเซิร์ฟเวอร์ คอนเทนเนอร์ส่วนประกอบ และส่วนประกอบต่างๆ แต่โปรดจำไว้ว่าทั้งหมดนี้เป็นมุมมองจากมุมที่ต่างกันในสิ่งเดียวกัน และลำดับไม่สำคัญนักที่นี่

ระดับการใช้งาน

แอปพลิเคชันแบบหลายชั้นคือแอปพลิเคชันที่แบ่งตามหลักการทำงานออกเป็นโมดูลแยกกัน (ระดับ, เลเยอร์) โดยทั่วไป (รวมถึงในบริบทของการพัฒนา Java EE) แอปพลิเคชันระดับองค์กรจะแบ่งออกเป็นสามระดับ:
  • ลูกค้า;
  • ระดับเฉลี่ย
  • ระดับการเข้าถึงข้อมูล
  1. เลเยอร์ไคลเอ็นต์คือแอปพลิเคชันที่ร้องขอข้อมูลจากเซิร์ฟเวอร์ Java EE (เลเยอร์กลาง) ในทางกลับกันเซิร์ฟเวอร์จะประมวลผลคำขอของลูกค้าและตอบกลับไป แอปพลิเคชันไคลเอ็นต์อาจเป็นเบราว์เซอร์ แอปพลิเคชันแบบสแตนด์อโลน (อุปกรณ์เคลื่อนที่หรือเดสก์ท็อป) หรือแอปพลิเคชันเซิร์ฟเวอร์อื่นๆ ที่ไม่มีอินเทอร์เฟซแบบกราฟิก

  2. ระดับกลางจะถูกแบ่งออกเป็นระดับเว็บและระดับตรรกะทางธุรกิจ

    1. เลเยอร์เว็บประกอบด้วยองค์ประกอบบางอย่างที่ให้การโต้ตอบระหว่างไคลเอนต์และเลเยอร์ตรรกะทางธุรกิจ

      เทคโนโลยี Java EE ต่อไปนี้ถูกใช้ในระดับเว็บ:

      • เทคโนโลยี JavaServer Faces (JSF);
      • หน้าเซิร์ฟเวอร์ Java (JSP);
      • ภาษานิพจน์ (EL);
      • เซิร์ฟเล็ต;
      • บริบทและการพึ่งพาการฉีดสำหรับ Java EE (CDI)

    2. เลเยอร์ตรรกะทางธุรกิจประกอบด้วยส่วนประกอบที่ใช้ตรรกะทางธุรกิจทั้งหมดของแอปพลิเคชัน ตรรกะทางธุรกิจคือโค้ดที่ให้ฟังก์ชันการทำงานที่ครอบคลุมความต้องการของธุรกิจบางประเภท (อุตสาหกรรมการเงิน การธนาคาร อีคอมเมิร์ซ) ระดับนี้ถือได้ว่าเป็นแกนหลักของทั้งระบบ

      เทคโนโลยีที่เกี่ยวข้องในระดับนี้:

      • องค์กร JavaBeans (EJB);
      • บริการเว็บ JAX-RS RESTful;
      • เอนทิตี Java Persistence API;
      • บริการข้อความจาวา

  3. ระดับการเข้าถึงข้อมูล ระดับนี้บางครั้งเรียกว่าระดับของระบบข้อมูลองค์กร (EIS) EIS ประกอบด้วยเซิร์ฟเวอร์ฐานข้อมูลต่างๆ ระบบการวางแผนทรัพยากรองค์กร ERP (Enterprise Resource Planning) และแหล่งข้อมูลอื่นๆ เลเยอร์ตรรกะทางธุรกิจเข้าถึงเลเยอร์นี้เพื่อดูข้อมูล

    ในระดับนี้คุณจะพบเทคโนโลยีต่างๆ เช่น:

    • API การเชื่อมต่อฐานข้อมูล Java (JDBC);
    • Java Persistence API;
    • สถาปัตยกรรมตัวเชื่อมต่อ Java EE;
    • Java ธุรกรรม API (JTA)

แอปพลิเคชันเซิร์ฟเวอร์ คอนเทนเนอร์ ส่วนประกอบ

เรามาดูคำจำกัดความของ Java EE จาก Wikipedia กันดีกว่า Java EE คือชุดข้อกำหนดและเอกสารที่เกี่ยวข้องสำหรับภาษา Java ซึ่งอธิบายสถาปัตยกรรมของแพลตฟอร์มเซิร์ฟเวอร์สำหรับงานขององค์กรขนาดกลางและขนาดใหญ่ เพื่อให้เข้าใจได้ดีขึ้นว่า "ชุดข้อกำหนด" หมายถึงอะไรในบริบทนี้ เรามาทำความเข้าใจกับอินเทอร์เฟซ Java กันดีกว่า อินเทอร์เฟซ Java นั้นไร้ฟังก์ชันการทำงาน เพียงกำหนดสัญญาบางอย่างตามการใช้งานฟังก์ชันบางอย่าง แต่คลาสอื่นใช้อินเทอร์เฟซ นอกจากนี้ อินเทอร์เฟซเดียวสามารถมีการใช้งานได้หลายอย่าง ซึ่งแต่ละส่วนอาจแตกต่างกันในรายละเอียดบางประการ ด้วยสเปคทุกอย่างจะเหมือนกันทุกประการ Naked Java EE เป็นเพียงชุดข้อมูลจำเพาะเท่านั้น ข้อมูลจำเพาะเหล่านี้ถูกนำไปใช้โดยเซิร์ฟเวอร์ Java EE ต่างๆ เซิร์ฟเวอร์ Java EE คือแอปพลิเคชันเซิร์ฟเวอร์ที่ใช้ API แพลตฟอร์ม Java EE และให้บริการ Java EE มาตรฐาน เซิร์ฟเวอร์ Java EE บางครั้งเรียกว่าเซิร์ฟเวอร์แอปพลิเคชัน ข้อมูลเซิร์ฟเวอร์สามารถมีส่วนประกอบของแอปพลิเคชัน ซึ่งแต่ละองค์ประกอบสอดคล้องกับระดับของตัวเองในลำดับชั้นหลายระดับ เซิร์ฟเวอร์ Java EE ให้บริการต่างๆ แก่ส่วนประกอบเหล่านี้ในรูปแบบของคอนเทนเนอร์ คอนเทนเนอร์เป็นส่วนติดต่อระหว่างส่วนประกอบที่โฮสต์และฟังก์ชันการทำงานที่ไม่ขึ้นกับแพลตฟอร์มระดับต่ำที่รองรับส่วนประกอบ คอนเทนเนอร์ให้บริการเฉพาะแก่ส่วนประกอบที่โฮสต์ ตัวอย่างเช่น การจัดการวงจรการพัฒนา การพึ่งพาการฉีด การทำงานพร้อมกัน ฯลฯ คอนเทนเนอร์ซ่อนความซับซ้อนทางเทคนิคและเพิ่มความสามารถในการพกพา มี คอนเทนเนอร์สี่ประเภทที่แตกต่างกันใน Java EE :
  1. เบราว์เซอร์ส่วนใหญ่ใช้งาน Applet Container เมื่อพัฒนาแอปเพล็ต คุณสามารถมุ่งความสนใจไปที่ด้านภาพของแอปพลิเคชันได้ ในขณะที่คอนเทนเนอร์จะมีสภาพแวดล้อมที่ปลอดภัย

  2. Application Client Container (ACC) ประกอบด้วยชุดคลาส Java ไลบรารี และไฟล์อื่นๆ ที่จำเป็นในการใช้งานคุณสมบัติต่างๆ เช่น การแทรก การจัดการความปลอดภัย และการตั้งชื่อบริการในแอปพลิเคชัน Java SE

  3. เว็บคอนเทนเนอร์ให้บริการหลักสำหรับการจัดการและดำเนินการส่วนประกอบของเว็บ (เซิร์ฟเล็ต, ส่วนประกอบ EJB Lite, เพจ JSP, ตัวกรอง, Listener, เพจ JSF และบริการเว็บ) มีหน้าที่รับผิดชอบในการสร้างอินสแตนซ์ การเริ่มต้น และการเรียกใช้เซิร์ฟเล็ต และการสนับสนุนโปรโตคอล HTTP และ HTTPS คอนเทนเนอร์นี้ใช้เพื่อแสดงหน้าเว็บไปยังเบราว์เซอร์ไคลเอ็นต์

  4. คอนเทนเนอร์ EJB (Enterprise Java Bean) มีหน้าที่ในการจัดการและดำเนินการส่วนประกอบโมเดล EJB ที่มีเลเยอร์ตรรกะทางธุรกิจของแอปพลิเคชัน โดยจะสร้างเอนทิตี EJB bean ใหม่ จัดการวงจรการใช้งาน และให้บริการต่างๆ เช่น ธุรกรรม ความปลอดภัย การทำงานพร้อมกัน การแจกจ่าย การตั้งชื่อ หรือการเรียกใช้แบบอะซิงโครนัส

นอกจากนี้ใน Java EE ยังมีส่วนประกอบสี่ประเภทที่ต้องรองรับการใช้งานข้อกำหนด Java EE:
  1. Applets คือแอปพลิเคชันส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) ที่ทำงานบนเบราว์เซอร์ พวกเขาใช้ประโยชน์จาก Swing API เพื่อสร้างอินเทอร์เฟซผู้ใช้ที่มีประสิทธิภาพ

  2. แอปพลิเคชันคือโปรแกรมที่ทำงานบนฝั่งไคลเอ็นต์ โดยทั่วไปเป็นส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) และใช้สำหรับการประมวลผลเป็นชุด

  3. เว็บแอปพลิเคชัน (ประกอบด้วยเซิร์ฟเล็ตและตัวกรอง, ฟังเหตุการณ์เว็บ, เพจ JSP และ JSF) - รันในเว็บคอนเทนเนอร์และตอบสนองต่อคำขอ HTTP จากเว็บไคลเอ็นต์ Servlets ยังรองรับจุดสิ้นสุดบริการเว็บ SOAP และ RESTful

  4. แอปพลิเคชันระดับองค์กร (ที่สร้างด้วย Enterprise Java Beans, Java Message Service, Java Transaction API, Asynchronous Calls, Time Services) ทำงานในคอนเทนเนอร์ EJB EJB ที่จัดการโดยคอนเทนเนอร์จะจัดการตรรกะทางธุรกิจของธุรกรรม สามารถเข้าถึงได้ทั้งในเครื่องหรือระยะไกลผ่าน RMI (หรือ HTTP สำหรับ SOAP และบริการเว็บ RESTful)

แผนภาพด้านล่างแสดงสถาปัตยกรรมแอปพลิเคชัน Java EE โดยทั่วไป: รู้เบื้องต้นเกี่ยวกับ Java EE - 2

เทคโนโลยี

ดังนั้นเราจึงได้แยกแยะสถาปัตยกรรมออก โครงสร้างโดยรวมควรมีความชัดเจน ในกระบวนการอธิบายส่วนประกอบทางสถาปัตยกรรม เราได้กล่าวถึงเทคโนโลยี Java EE บางอย่าง เช่น EJB, JSP ฯลฯ มาดูเทคโนโลยีเหล่านั้นให้ละเอียดยิ่งขึ้นกัน ตารางด้านล่างแสดงเทคโนโลยีที่ใช้เป็นหลักในระดับไคลเอนต์:
เทคโนโลยี วัตถุประสงค์
เซิร์ฟเล็ต คลาส Java ที่ประมวลผลคำขอไคลเอ็นต์แบบไดนามิกและสร้างการตอบกลับ (โดยปกติจะเป็นหน้า HTML)
จาวาเซิร์ฟเวอร์ใบหน้า (JSF) เฟรมเวิร์กสำหรับการสร้างเว็บแอปพลิเคชันด้วยอินเทอร์เฟซผู้ใช้ ช่วยให้คุณสามารถรวมส่วนประกอบอินเทอร์เฟซผู้ใช้ (เช่น ฟิลด์และปุ่ม) บนเพจ แปลงและตรวจสอบส่วนประกอบเหล่านี้ และจัดเก็บข้อมูลนี้ไว้ในที่เก็บข้อมูลฝั่งเซิร์ฟเวอร์
เทคโนโลยี Java Server Faces Facelets เป็นประเภทย่อยของแอปพลิเคชัน JSF ที่ใช้เพจ XHTML แทนเพจ JSP
เพจเซิร์ฟเวอร์ Java (JSP) เอกสารข้อความที่คอมไพล์เป็นเซิร์ฟเล็ต ช่วยให้คุณสามารถเพิ่มเนื้อหาไดนามิกลงในเพจแบบคงที่ (เช่น เพจ HTML)
ไลบรารีแท็กมาตรฐานของเพจเซิร์ฟเวอร์ Java (JSTL) ไลบรารีแท็กที่สรุปการทำงานหลักในบริบทของเพจ JSP
ภาษาการแสดงออก ชุดแท็กมาตรฐานที่ใช้ในเพจ JSP และ Facelets เพื่อเข้าถึงคอมโพเนนต์ Java EE
บริบทและการพึ่งพาการฉีดสำหรับ Java EE (CDI) แสดงถึงชุดบริการที่คอนเทนเนอร์ Java EE มอบให้สำหรับการจัดการวงจรชีวิตของส่วนประกอบ ตลอดจนการแทรกส่วนประกอบลงในอ็อบเจ็กต์ไคลเอ็นต์ด้วยวิธีที่ปลอดภัย
ส่วนประกอบ Java Beans ออบเจ็กต์ที่ทำหน้าที่เป็นที่จัดเก็บข้อมูลชั่วคราวสำหรับหน้าแอปพลิเคชัน
ตารางด้านล่างแสดงเทคโนโลยีที่ใช้ในระดับตรรกะทางธุรกิจ:
เทคโนโลยี วัตถุประสงค์
ส่วนประกอบ Enterprise Java Beans (enterprise bean) EJB คือถั่วที่ได้รับการจัดการซึ่งมีฟังก์ชันการทำงานหลักของแอปพลิเคชัน
บริการเว็บ JAX-RS RESTful เป็น API สำหรับการพัฒนาบริการเว็บที่สอดคล้องกับรูปแบบสถาปัตยกรรม REST
จุดสิ้นสุดบริการเว็บ JAX-WS API สำหรับการสร้างและใช้บริการเว็บ SOAP
เอนทิตี Java Persistence API (JPA) API สำหรับการเข้าถึงข้อมูลในที่เก็บข้อมูลและแปลงข้อมูลนั้นเป็นออบเจ็กต์ภาษาการเขียนโปรแกรม Java และในทางกลับกัน
Java EE จัดการถั่ว Managed beans ที่จัดเตรียมตรรกะทางธุรกิจของแอปพลิเคชัน แต่ไม่ต้องการคุณลักษณะด้านธุรกรรมหรือความปลอดภัยของ EJB
บริการข้อความจาวา Java Message Service (JMS) API เป็นมาตรฐานการส่งข้อความที่อนุญาตให้คอมโพเนนต์แอปพลิเคชัน Java EE สร้าง ส่ง รับ และอ่านข้อความ ช่วยให้มั่นใจได้ถึงการสื่อสารแบบกระจาย เชื่อถือได้ และแบบอะซิงโครนัสระหว่างส่วนประกอบต่างๆ
ตารางด้านล่างแสดงเทคโนโลยีที่ใช้ในชั้นการเข้าถึงข้อมูล:
เทคโนโลยี วัตถุประสงค์
API การเชื่อมต่อฐานข้อมูล Java (JDBC) API ระดับต่ำสำหรับการเข้าถึงและดึงข้อมูลจากที่เก็บข้อมูล การใช้งานทั่วไปของ JDBC คือการเขียนคำสั่ง SQL กับฐานข้อมูลเฉพาะ
Java Persistence API API สำหรับการเข้าถึงข้อมูลในที่เก็บข้อมูลและแปลงข้อมูลนั้นเป็นออบเจ็กต์ภาษาการเขียนโปรแกรม Java และในทางกลับกัน API ระดับที่สูงกว่ามากเมื่อเทียบกับ JDBC ซ่อนความซับซ้อนทั้งหมดของ JDBC จากนักพัฒนาภายใต้ประทุน
สถาปัตยกรรมตัวเชื่อมต่อ Java EE API สำหรับเชื่อมต่อทรัพยากรอื่นๆ ขององค์กร เช่น:
  • ERP (การวางแผนทรัพยากรองค์กร, ระบบการวางแผนทรัพยากรองค์กร),
  • CRM (อังกฤษ: การจัดการลูกค้าสัมพันธ์, ระบบการจัดการลูกค้าสัมพันธ์)
Java ธุรกรรม API (JTA) API สำหรับการกำหนดและจัดการธุรกรรม รวมถึงธุรกรรมแบบกระจายและธุรกรรมข้ามที่เก็บข้อมูลหลายแห่ง

Java EE กับสปริง

Spring Framework ถือเป็นคู่แข่งของ Java EE หากดูการพัฒนาของทั้งสองแพลตฟอร์มจะเกิดภาพที่น่าสนใจ Java EE เวอร์ชันแรกถูกสร้างขึ้นโดยการมีส่วนร่วมของ IBM ปรากฏว่าดูเท่แต่เงอะงะ หนัก และใช้งานไม่สะดวก นักพัฒนาประสบปัญหาเนื่องจากจำเป็นต้องดูแลรักษาไฟล์การกำหนดค่าจำนวนมาก และเหตุผลอื่นๆ ที่ทำให้การพัฒนายุ่งยาก ในเวลาเดียวกัน Spring IoC ก็ถือกำเนิดขึ้น เป็นห้องสมุดขนาดเล็ก สวยงาม และใช้งานง่าย นอกจากนี้ยังใช้ไฟล์กำหนดค่า แต่ไม่เหมือนกับ Java EE มีเพียงไฟล์เดียว ความเรียบง่ายของ Spring ได้นำไปสู่ความจริงที่ว่าเกือบทุกคนเริ่มใช้เฟรมเวิร์กนี้ในโครงการของตน จากนั้น Spring และ Java EE ก็เริ่มเส้นทางของพวกเขาไปสู่สิ่งเดียวกัน แต่มาจากปลายที่แตกต่างกัน Pivotal Software ผู้พัฒนา Spring เริ่มเปิดตัวโปรเจ็กต์แล้วโปรเจ็กต์เพื่อครอบคลุมความต้องการที่เป็นไปได้และเป็นไปไม่ได้ของนักพัฒนา Java สิ่งที่ก่อนหน้านี้เรียกว่า Spring ค่อยๆ กลายเป็นหนึ่งในโครงการ จากนั้นจึงรวมเข้ากับโครงการอื่นๆ อีกหลายโครงการใน Spring Core ทั้งหมดนี้นำไปสู่ความซับซ้อนที่หลีกเลี่ยงไม่ได้ของฤดูใบไม้ผลิเมื่อเทียบกับสิ่งที่เป็นอยู่แต่แรก เมื่อเวลาผ่านไป การติดตามความยุ่งเหยิงของการพึ่งพา Spring ทั้งหมดกลายเป็นเรื่องยากมาก และความต้องการก็เกิดขึ้นสำหรับไลบรารีแยกต่างหากที่จะโหลดและรันทุกอย่างด้วยตัวมันเอง (ตอนนี้ Spring Boot อันเป็นที่รักได้สะดุดอยู่ที่ไหนสักแห่ง) ตลอดเวลานี้ JCP ทำงานสิ่งหนึ่ง - เพื่อให้ทุกอย่างที่เป็นไปได้ภายใน Java EE ง่ายขึ้นสูงสุด ด้วยเหตุนี้ ใน EJB สมัยใหม่ ในการอธิบาย bean ก็เพียงพอแล้วที่จะระบุคำอธิบายประกอบหนึ่งรายการเหนือคลาส ซึ่งทำให้นักพัฒนาสามารถเข้าถึงเทคโนโลยี Enterprise Java Beans ได้อย่างเต็มประสิทธิภาพ และการลดความซับซ้อนที่คล้ายกันได้ส่งผลต่อทุกข้อกำหนดภายใน Java EE เป็นผลให้ Spring และ Java EE มีความเท่าเทียมกันโดยประมาณในแง่ของฟังก์ชันการทำงาน บางสิ่งดีขึ้น บางสิ่งแย่ลง แต่ถ้าคุณมองในภาพรวม ก็ไม่มีความแตกต่างใหญ่หลวง เช่นเดียวกับความซับซ้อนของงาน ทั้ง Spring และ Java EE เป็นเครื่องมือที่ยอดเยี่ยม บางทีสิ่งที่ดีที่สุดที่มีอยู่ในปัจจุบันสำหรับการสร้างแอปพลิเคชันเครือข่ายองค์กรใน Java อย่างไรก็ตาม โดยทั่วไป Java EE สามารถทำงานได้เฉพาะภายใน Enterprise Application Server เท่านั้น (Tomcat ไม่ใช่หนึ่งเดียว) และแอปพลิเคชันบน Spring stack สามารถทำงานบนอะไรก็ได้ (บน Tomcat เดียวกัน) และแม้ว่าจะไม่มีเซิร์ฟเวอร์เลยก็ตาม (เนื่องจากมันจะทำงาน ในตัวมันเองอย่างเป็นอิสระ) ทำให้ Spring เป็นเครื่องมือที่เหมาะสำหรับการพัฒนาแอปพลิเคชัน GUI ฟรอนต์เอนด์ขนาดเล็กหรือสถาปัตยกรรมไมโครเซอร์วิส แต่การขจัดการพึ่งพาแอปพลิเคชันเซิร์ฟเวอร์นั้นส่งผลเสียต่อความสามารถในการปรับขนาดของแอปพลิเคชัน Spring และ Java EE เหมาะอย่างยิ่งสำหรับการใช้งานแอปพลิเคชันคลัสเตอร์เสาหินที่ปรับขนาดได้ นักพัฒนาที่คุ้นเคยกับ Spring Framework นั้นเป็นที่ต้องการมากขึ้นในตลาดแรงงาน นี่เป็นสิ่งที่เกิดขึ้นในอดีต ในช่วงเวลาที่ Java EE มีความซับซ้อนมากเกินไป Spring “ได้รับฐานลูกค้า” ยังไม่มีคำตอบที่ชัดเจนสำหรับคำถามว่าจะเรียนรู้ Spring หรือ Java EE อย่างไร ผู้เริ่มต้นสามารถได้รับคำแนะนำดังต่อไปนี้ ทำความคุ้นเคยกับทั้งสองแพลตฟอร์ม (อย่างน้อยก็อย่างผิวเผิน) เขียนโครงการบ้านขนาดเล็กทั้งใน Java EE และ Spring แล้วเจาะลึกถึงกรอบการทำงานที่จำเป็นในการทำงาน ด้วยเหตุนี้การสลับระหว่าง Spring และ Java EE จึงไม่ใช่เรื่องยาก

ผลลัพธ์

แน่นอนว่าหัวข้อใหญ่ๆ ไม่สามารถครอบคลุมในบทความเดียวได้! หลังจากมีคำศัพท์ใหม่ๆ มากมาย คุณอาจต้องการ "ประยุกต์" ความรู้นี้กับตัวอย่างในชีวิตจริง ดังนั้นเราจะศึกษา Java EE ต่อไป: คุณจะพบบทเรียนเชิงปฏิบัติเกี่ยวกับการตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE ในบทความถัดไป
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION