Spring Framework คืออะไร? - เส้นทางสู่การพัฒนาอย่างมีประสิทธิภาพ



บล็อกนี้เกี่ยวกับสิ่งที่ Spring Framework พูดถึงเกี่ยวกับ Java Framework ที่ใช้กันอย่างแพร่หลาย - Spring นอกจากนี้ยังบอกเหตุผลและวิธีการใช้ Spring Framework พร้อมตัวอย่าง

ในโลกที่หมุนไปอย่างรวดเร็วในปัจจุบันเราต้องการให้ทุกอย่างเป็นไปอย่างรวดเร็ว เราไม่ต้องการให้ตัวเองหมกมุ่นอยู่กับงานชิ้นเดียวนานเกินไปปล่อยให้มันเป็นอะไรก็ได้เช่นท่องเที่ยวช็อปปิ้งเรียนหรือทำงาน เมื่อพูดถึงการเข้ารหัสเราต้องการให้แอปพลิเคชันของเราได้รับการพัฒนาในระยะเวลาสั้นที่สุด แต่ให้ประสิทธิภาพเต็มที่ เราอาจจะรีบร้อน แต่ถึงกระนั้นเราก็ไม่สามารถประนีประนอมกับคุณภาพของเราได้หรือไม่ต้องการใช้ความพยายามมากเกินไป แล้วทางออกคืออะไร? เฟรมเวิร์กทำงานได้ดีที่สุดในสถานการณ์นี้ มี Framework ต่างๆวางจำหน่ายในตลาดซึ่งมีไม่กี่ตัวที่ใช้เช่น Spring, Hibernate, Struts เป็นต้นในบล็อกนี้เรามาดูกันว่า Spring Framework คืออะไรและทำไมจึงเป็นที่นิยมในตลาด!

ก่อนที่จะเริ่มลองดูหัวข้อที่ฉันจะพูดคุยในบล็อกนี้:





Java Frameworks

ทำไมเราควรเลือกใช้ Frameworks?มาดูกันทำความเข้าใจกับเพื่อนของเรา Coddy .

Coddy in problem - Spring Framework คืออะไร - Edureka!



Coddy ได้รับมอบหมายงานให้พัฒนาแอปพลิเคชัน แต่เวลาที่ได้รับมอบหมายไม่เพียงพอที่จะทำให้เสร็จ เขาต้องเขียนโค้ดหลายบรรทัด (LOC) ด้วยตัวเอง ใช้เวลานานและเหนื่อยมาก เขากำลังสับสนว่าควรทำอย่างไร! เขาควรเริ่มจากจุดไหน!

Coddy เริ่มคิดหาวิธีแก้ปัญหาของเขา เขาต้องการสิ่งที่รวดเร็วและมีประสิทธิภาพช่วยประหยัดเวลาและความพยายามเช่นของสำเร็จรูป



ประเภทการแปลงใน c ++

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

เขาเขียนโค้ดโดยใช้ Framework น่าแปลกใจที่โค้ดติดตั้งกับเฟรมเวิร์กได้อย่างง่ายดาย

Coddy ตอนนี้สามารถเขียนโค้ดได้เร็วขึ้นและกรอกใบสมัครภายในกรอบเวลาที่กำหนด ยิ่งไปกว่านั้นเขาเป็นอิสระจากการเขียนโค้ดที่ไม่สามารถใช้งานได้หลายพันบรรทัด

หลังจากปรับใช้แอพพลิเคชั่นที่พัฒนาโดยใช้ Framework เขาพบว่ามันทำงานด้วยความเร็วที่สูงขึ้นมากและปริมาณงานก็เพิ่มขึ้นเมื่อเทียบกับแอพพลิเคชั่นอื่น ๆ ที่พัฒนาโดยไม่ใช้ Framework

ดังนั้นเริ่มต้นด้วย Java Frameworks

Java Frameworks เข้ามามีอยู่ได้อย่างไร?

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

  • มากซับซ้อน : Enterprise Java Bean ได้รับการพัฒนาเพื่อลดความซับซ้อนในแอปพลิเคชัน J2EE แต่ไม่ประสบความสำเร็จตามจุดมุ่งหมายในการนำไปใช้งาน เหตุผลเบื้องหลังคือในขณะที่เขียนคอมโพเนนต์จำเป็นต้องเขียนชุดของไฟล์ XML อินเตอร์เฟสภายในบ้านอินเทอร์เฟซระยะไกล / โลคัล ฯลฯ
  • ปัญหา 'ค้นหา': เมื่อใดก็ตามที่ส่วนประกอบขึ้นอยู่กับส่วนประกอบอื่นก็ต้องค้นหาส่วนประกอบที่ขึ้นอยู่กับตัวมันเอง คอมโพเนนต์ 'การค้นหา' เกิดขึ้นโดยใช้ชื่อเท่านั้นดังนั้นชื่อของการอ้างอิงจึงได้รับการฮาร์ดโค้ดในองค์ประกอบ
  • น้ำหนักมาก: ในฐานะที่เป็นรองรับคุณสมบัติต่างๆเช่นการทำคลัสเตอร์การรีบูตและอื่น ๆ คุณต้องกำหนดค่าไม่ว่าคุณจะต้องการหรือไม่ก็ตาม วิธีนี้จะทำให้แอปพลิเคชันของคุณป่อง

นี่คือวิธีที่ Java Frameworks เกิดขึ้น Java Frameworks ไม่ใช่แค่ส่วนใหญ่ของโค้ดที่กำหนดไว้ล่วงหน้าซึ่งคุณสามารถใช้กับโค้ดของคุณเองเพื่อแก้ปัญหาของคุณในโดเมนเฉพาะ คุณสามารถใช้เฟรมเวิร์กโดยเรียกใช้เมธอดการสืบทอดโดยการให้ 'การเรียกกลับ' ผู้ฟังหรือการใช้งานอื่น ๆ ของ ผู้สังเกตการณ์ รูปแบบ

มาทำความเข้าใจผ่านการแสดงภาพ:

แต่มันลดงานของเราและทำให้โค้ดของเรามีประสิทธิภาพได้อย่างไร? เพื่อทำความเข้าใจให้ดำเนินการดังต่อไปนี้ ข้อดีและข้อเสียของกรอบเหล่านี้ เริ่มต้นด้วย ข้อดี .

ประสิทธิภาพ:

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

ความปลอดภัย:

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

ค่าใช้จ่าย:

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

java วิธีออกจากโปรแกรม

สนับสนุน:

ในฐานะที่เป็นเครื่องมือแบบกระจายอื่น ๆ กรอบงานโดยทั่วไปจะรวมถึงเอกสารกลุ่มสนับสนุนหรือฟอรัมออนไลน์ของชุมชนขนาดใหญ่ที่คุณสามารถรับคำตอบได้อย่างรวดเร็ว

แม้จะมีข้อดีเหล่านี้ Java Frameworks ก็มีอยู่บ้าง ข้อเสีย , ชอบ:


ข้อ จำกัด:

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

รหัสเป็นสาธารณะ:

เนื่องจากทุกคนพร้อมใช้งานเฟรมเวิร์ก iนอกจากนี้ยังเสนอให้กับผู้ที่มีเจตนาไม่ดี สามารถศึกษาเพื่อให้ทราบว่าสิ่งต่างๆทำงานอย่างไรและค้นพบข้อบกพร่องที่สามารถนำมาใช้กับคุณได้

กำหนดเอง คุณสมบัติ:

เมื่อคุณใช้ประโยชน์จากเฟรมเวิร์กคุณจะรู้เกี่ยวกับภาษาที่อยู่เบื้องหลังมันน้อยมากเนื่องจากคุณสมบัติในนั้นสร้างขึ้นเองเมื่อคุณใช้คุณลักษณะที่สร้างขึ้นเองมีโอกาสมากที่คุณจะต้องใช้คุณสมบัติเหล่านี้ตามมาตรฐานของกรอบงานซึ่งอาจแตกต่างจากแนวคิดดั้งเดิม

ตอนนี้ที่คุณรู้ข้อดีและข้อเสียของกรอบเลือกกรอบงานของคุณตามความต้องการของคุณ มีหลายประเภทของกรอบในตลาด แผนภาพด้านล่างแสดงให้เห็นบางส่วน:

ดังนั้นในบล็อกนี้เราจะเน้นที่ Spring Framework

Spring Framework คืออะไร?

คำถามนี้เกิดขึ้น“ Spring Framework คืออะไร”?

Spring Framework เป็นเฟรมเวิร์กการพัฒนาแอพพลิเคชั่นน้ำหนักเบาอันทรงพลังที่ใช้สำหรับ Enterprise Java (JEE)

คุณสมบัติหลักของ Spring Framework สามารถใช้ในการพัฒนาแอปพลิเคชัน Java ใด ๆสามารถอธิบายได้ว่ากรอบที่สมบูรณ์และเป็นโมดูล Spring Framework สามารถใช้สำหรับการใช้งานเลเยอร์ทั้งหมดของแอปพลิเคชันแบบเรียลไทม์ นอกจากนี้ยังสามารถใช้สำหรับการพัฒนาเลเยอร์เฉพาะของแอปพลิเคชันแบบเรียลไทม์ซึ่งแตกต่างจาก Struts และ Hibernate แต่ด้วย Spring เราสามารถพัฒนาเลเยอร์ทั้งหมดได้

Spring Framework คืออะไร แต่มีการพัฒนาอย่างไร? มีประวัติที่น่าสนใจอยู่เบื้องหลัง มาดูประวัติและที่มาของ Spring Framework กัน

ในเดือนตุลาคม 2545 ร็อดจอห์นสัน ผู้เชี่ยวชาญด้านคอมพิวเตอร์ชาวออสเตรเลียเขียนหนังสือชื่อ Expert One-on-One J2EE Design and Development ในหนังสือเล่มนี้เขาเสนอวิธีแก้ปัญหาที่ง่ายกว่าโดยอาศัยคลาส Java ธรรมดา (POJO) และการฉีดขึ้นต่อกัน เขาเขียนโค้ดโครงสร้างพื้นฐานกว่า 30,000 บรรทัดซึ่งรวมอินเทอร์เฟซและคลาสจาวาที่ใช้ซ้ำได้จำนวนหนึ่งสำหรับการพัฒนาแอปพลิเคชัน ประมาณเดือนกุมภาพันธ์ พ.ศ. 2546 Rod, Juergen และ Yann เริ่มทำงานร่วมกันในโครงการ Spring ชื่อ 'Spring' ได้รับเนื่องจากหมายถึงการเริ่มต้นใหม่หลังจาก 'ฤดูหนาว' ของ J2EE แบบดั้งเดิม

ต่อไปนี้เป็นไทม์ไลน์ที่แสดงเกี่ยวกับการเผยแพร่ครั้งสำคัญในประวัติศาสตร์ของฤดูใบไม้ผลิ:

มีชื่อว่าอินเทอร์เฟซ 21 อ้างอิงถึงศตวรรษที่ 21 และเผยแพร่ภายใต้ใบอนุญาต Apache 2.0
นี่เป็นการเปิดตัวครั้งสำคัญครั้งแรก Spring framework พัฒนาไปอย่างรวดเร็วนับตั้งแต่รุ่นนี้ Interface21 รองรับ AspectJ ควบคู่ไปกับ Spring Framework
เพิ่มคุณสมบัติใหม่ - คอนฟิกูเรชัน XML ที่ขยายได้, รองรับ Java 5 และภาษาไดนามิก, จุดขยาย IoC และการปรับปรุง AOP
เพิ่มคุณสมบัติใหม่ - รองรับ Java 6 / JEE5, การกำหนดค่าคำอธิบายประกอบ, การตรวจหาคอมโพเนนต์อัตโนมัติใน classpath และบันเดิลที่สอดคล้องกับ OSGi
มีการเพิ่มคุณสมบัติใหม่ - รองรับระบบโมดูลที่จัดโครงสร้างใหม่, SpEL, JavaConfig, ฐานข้อมูลแบบฝัง, การสนับสนุน REST และการสนับสนุน Java EE 6
Spring Data Commons Project เปิดตัวแล้ว ต่อมาในปี 2012 Rod Johnson ออกจากทีม Spring
โครงการ Spring ทั้งหมดเปลี่ยนเป็น Pivotal มีการเพิ่มคุณสมบัติใหม่ - รองรับ Java 8, websockets, การพึ่งพาไลบรารีของบุคคลที่สามที่สูงขึ้น, DSL ที่น่าสนใจสำหรับนิยาม bean
เข้ากันได้กับ Java 6, 7 และ 8 โดยเน้นที่การปรับแต่งหลักและความสามารถของเว็บที่ทันสมัย
มันจะเป็นรุ่นสุดท้ายภายในข้อกำหนดทั่วไปของระบบ Spring 4 4.3.8 เป็นเวอร์ชันปัจจุบัน

ทำไมต้อง Spring Framework?

ด้านล่างนี้เป็นแผนภูมิที่แสดงการเปรียบเทียบระหว่าง Spring และ Framework อื่น ๆ

ด้านล่างนี้เป็นกราฟจากแบบสำรวจณ เดือนพฤษภาคม 2559 ดังที่คุณเห็นจากกราฟว่า Spring Framework ได้รับความนิยมอย่างมากในโดเมนและยังคงดำรงตำแหน่งในตั้งแต่ปี 2014

เหตุผลของสปริงเฟรมความนิยมของผลงาน

โดยทั่วไปมีสามเหตุผลหลักที่ทำให้ Spring Framework ได้รับความนิยม

  1. เรียบง่าย
  2. Testablity
  3. ข้อต่อหลวม

มาคุยรายละเอียดหัวข้อเหล่านี้กัน

ความเรียบง่าย: Spring Framework นั้นเรียบง่ายเนื่องจากไม่รุกรานเนื่องจากใช้โมเดล POJO และ POJI

  • POJO (วัตถุ Java เก่าธรรมดา):คลาส Java ที่ไม่ได้ใช้ร่วมกับเทคโนโลยีใด ๆ หรือเรียกว่า Framework ใด ๆ ' POJO ' .
  • POJI (Plain Old Java Interfaces): อินเทอร์เฟซ Java ที่ไม่ได้ใช้ร่วมกับเทคโนโลยีใด ๆ หรือเรียกว่างานเฟรมใด ๆ ' POJI ' .

Testablity : สำหรับการเขียน Sไม้ไผ่แอปพลิเคชันเซิร์ฟเวอร์ไม่บังคับ แต่สำหรับแอปพลิเคชัน struts และ EJB คุณต้องมีเซิร์ฟเวอร์หากคุณต้องการทดสอบแอปพลิเคชัน อาจต้องมีการเปลี่ยนแปลงจำนวนมากในแหล่งที่มาและเพื่อดูการเปลี่ยนแปลงเหล่านั้นทุกครั้งที่คุณต้องรีสตาร์ทเซิร์ฟเวอร์ สิ่งนี้จะน่าเบื่อและเสียเวลา ในกรณีที่Spring Framework มีคอนเทนเนอร์ของตัวเองเพื่อเรียกใช้ appliไอออนบวก

ข้อต่อหลวม: Spring Framework ทำงานร่วมกันอย่างหลวม ๆ เนื่องจากมีแนวคิดเช่น Dependency Injection, AOP เป็นต้นคุณสมบัติเหล่านี้ช่วยในการลดการพึ่งพาและเพิ่มความเป็นโมดูลาร์ภายในโค้ด มาทำความเข้าใจกับตัวอย่างนี้

ข้อมูล tableau ผสมซ้ายเข้าร่วม

ที่นี่ฉันมีอินเทอร์เฟซ Bike ซึ่งมีวิธี start () มีการดำเนินการเพิ่มเติมโดยสามคลาส ได้แก่ Yamaha, Honda และ Bajaj

อินเทอร์เฟซสาธารณะ Bike {public void start ()}

ที่นี่คลาส Rider สร้างออบเจ็กต์ของคลาสใด ๆ ที่ใช้อินเทอร์เฟซ Bike

class Rider {Bike b public void setBike (Bike b) {this.b = b} void ride () {b.start ()}}

ตอนนี้คอนเทนเนอร์ Spring Framework สามารถฉีดออบเจ็กต์ของคลาสใดก็ได้ที่ใช้อินเทอร์เฟซ Bike ตามข้อกำหนด นี่คือวิธีการทำงานของข้อต่อหลวม

สถาปัตยกรรมกรอบฤดูใบไม้ผลิ

ดังที่คุณเห็นจากแผนภาพด้านบนว่า Spring มีสถาปัตยกรรมแบบเลเยอร์ซึ่งประกอบด้วยโมดูลต่าง ๆ ซึ่งมีฟังก์ชันการทำงานของตัวเอง โมดูลเหล่านี้แบ่งออกเป็นเลเยอร์ต่อไปนี้:

  • คอนเทนเนอร์หลัก
  • การเข้าถึง / การรวมข้อมูล
  • เว็บ
  • AOP (การเขียนโปรแกรมเชิงภาพ)
  • เครื่องมือวัด
  • ทดสอบ.

คุณอาจสงสัยว่า Spring Framework มีข้อดีอย่างไรในการมีสถาปัตยกรรมแบบเลเยอร์ มาดูประเด็นต่อไปนี้:

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

เพื่อให้เข้าใจอย่างถ่องแท้ว่า Spring Framework คืออะไรมาดู Spring Framework Application ง่ายๆกัน ทำตามห้าขั้นตอนง่ายๆ:

ขั้นตอนที่ 1: สร้างคลาส Bean

package org.edureka.firstSpring public class StudentBean {String name public String getName () {return name} public void setName (String name) {this.name = name} public void displayInfo () {System.out.println ('Hello: '+ ชื่อ)}}

ขั้นตอนที่ II: สร้างไฟล์ XML

 

ขั้นตอนที่ 3: สร้างคลาสหลัก

package org.edureka.firstSpring import org.springframework.context.ApplicationContext import org.springframework.context.support.ClassPathXmlApplicationContext public class StudentDemo {public static void main (String [] args) {ApplicationContext appCon = new ClassPathXmlApplicationContext ('StudentConfig.x ) โรงงาน StudentBean = (StudentBean) appCon.getBean ('studentbean') factory.displayInfo ()}}

ขั้นตอนที่ IV: โหลดไฟล์ jar

โหลดไฟล์ jar ต่อไปนี้

  • commons-logging-1.2.jar
  • javax.servlet-api-3.1.0.jar
  • jstl-1.2.jar
  • สปริง aop-4.2.2.RELEASE.jar
  • ถั่วฤดูใบไม้ผลิ -4.2.2 RELEASE.jar
  • spring-context-4.2.2.RELEASE.jar
  • สปริงคอร์ -4.2.2.RELEASE.jar
  • สปริงนิพจน์ -4.2.2.RELEASE.jar
  • spring-web-4.2.2.RELEASE.jar
  • สปริง webmvc-4.2.2.RELEASE.jar

บันทึก: ในกรณีที่คุณต้องการไฟล์ jar ให้แสดงความคิดเห็นด้านล่าง

ขั้นตอนที่ V: เรียกใช้โปรแกรม

เรียกใช้โปรแกรมบนเซิร์ฟเวอร์ของคุณเพื่อทดสอบแอปพลิเคชัน

หวังว่าฉันจะสามารถอธิบายได้อย่างชัดเจนว่า Spring Framework คืออะไรทำงานอย่างไรและใช้ทำอะไร นอกจากนี้คุณยังดูวิดีโอเรื่อง“ What is Spring Framework” ซึ่งผู้สอนจะอธิบายหัวข้อที่กล่าวถึงในบล็อกนี้พร้อมกับการสาธิตเชิงปฏิบัติ

Spring Framework ใน Java คืออะไร | บทแนะนำ Spring Framework | Edureka

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Spring Framework โปรดติดตามบล็อกชุดนี้ของฉันเพราะฉันจะมากับบล็อกอื่นใน ซึ่งจะพูดถึงแนวคิดขั้นสูงเพิ่มเติมในฤดูใบไม้ผลิ

หากคุณต้องการเรียนรู้ Spring และต้องการใช้ในขณะที่พัฒนาแอปพลิเคชัน Java ให้ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป