บทความนี้บอกคำถามทดสอบการสัมภาษณ์แบบคลาสสิกและคำตอบอ้างอิงของพวกเขา แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. ไฮเบอร์เนตทำงานอย่างไรและทำไมควรใช้?
หลักการ:
1. อ่านและแยกวิเคราะห์ไฟล์การกำหนดค่า
2. อ่านและแยกวิเคราะห์ข้อมูลการทำแผนที่และสร้าง SessionFactory
3. เปิดเซสชัน
4. สร้างการถ่ายทำธุรกรรม
5. การดำเนินการคงอยู่
6. ส่งธุรกรรม
7. ปิดเซสชัน
8. ปิด SESSTION FACTORY
ทำไมต้องใช้:
①. รหัสสำหรับการเข้าถึงฐานข้อมูล JDBC ได้รับการห่อหุ้มได้ง่ายขึ้นอย่างมากทำให้รหัสซ้ำ ๆ ที่ยุ่งยากในเลเยอร์การเข้าถึงข้อมูล
②. Hibernate เป็นกรอบการคงอยู่ของกระแสหลักที่ใช้ JDBC และเป็นการใช้งาน ORM ที่ยอดเยี่ยม มันทำให้งานการเข้ารหัสของเลเยอร์ DAO ง่ายขึ้นอย่างมากในระดับที่ดี
③. Hibernate ใช้กลไกการสะท้อน Java มากกว่าโปรแกรมการปรับปรุงไบต์เพื่อให้เกิดความโปร่งใส
④. Hibernate ทำงานได้ดีมากเพราะเป็นกรอบที่มีน้ำหนักเบา ความยืดหยุ่นของการทำแผนที่นั้นยอดเยี่ยม รองรับฐานข้อมูลเชิงสัมพันธ์ต่าง ๆ จากความสัมพันธ์ที่ซับซ้อนถึงหนึ่งถึงหนึ่งถึงหลายคน
2. การล่าช้าของไฮเบอร์เนตจะโหลดอย่างไร?
①. Hibernate2 การดำเนินการโหลดล่าช้า: a) เอนทิตีวัตถุ B) คอลเลกชัน (คอลเลกชัน)
②. Hibernate3 ให้ฟังก์ชั่นการโหลดล่าช้าของแอตทริบิวต์ เมื่อไฮเบอร์เนตสอบถามข้อมูลข้อมูลไม่มีอยู่และหน่วยความจำ เมื่อโปรแกรมทำงานบนข้อมูลอย่างแท้จริงวัตถุจะมีอยู่และหน่วยความจำซึ่งตระหนักถึงการโหลดล่าช้า มันบันทึกค่าใช้จ่ายหน่วยความจำของเซิร์ฟเวอร์และปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์
3. จะใช้ความสัมพันธ์ระหว่างชั้นเรียนในไฮเบอร์เนตได้อย่างไร? (เช่นความสัมพันธ์แบบหนึ่งถึงหลายต่อหลายครั้ง)
ความสัมพันธ์ระหว่างชั้นเรียนส่วนใหญ่สะท้อนให้เห็นในความสัมพันธ์ระหว่างตาราง พวกเขาทำงานกับวัตถุในเมือง โปรแกรมของเราแมปตารางและชั้นเรียนทั้งหมดเข้าด้วยกันและพวกเขาจะถูกส่งผ่านผ่านหลายแบบหนึ่งต่อหลายแบบหลายต่อหลายและหลายต่อหลายในหลาย ๆ ไฟล์ในไฟล์กำหนดค่า
4. พูดถึงกลไกแคชของไฮเบอร์เนตกันเถอะ
①. แคชภายในเรียกว่าแคชระดับแรกในไฮเบอร์เนตซึ่งเป็นของแคชระดับแอปพลิเคชัน
②. แคชระดับ 2:
a) แอปพลิเคชันและแคช
b) เงื่อนไขแคชแบบกระจาย: ข้อมูลจะไม่ถูกแก้ไขโดยบุคคลที่สามขนาดข้อมูลอยู่ในช่วงที่ยอมรับได้ความถี่การอัปเดตข้อมูลต่ำข้อมูลเดียวกันมักถูกใช้โดยระบบและข้อมูลที่ไม่สำคัญ
c) การใช้แคชของบุคคลที่สาม
5. วิธีการสืบค้นไฮเบอร์เนต
SQL, เกณฑ์, Comptosition Object
HQL:
1. แอตทริบิวต์แบบสอบถาม
2. การสืบค้นพารามิเตอร์ชื่อพารามิเตอร์แบบสอบถาม
3. คำถามที่เกี่ยวข้อง
4. การสืบค้นการปนเปื้อน
5. ฟังก์ชั่นทางสถิติ
6. วิธีเพิ่มประสิทธิภาพการจำศีล?
①. ใช้การเชื่อมโยงแบบสองถึงหลายทิศทางไม่ใช่แบบหนึ่งถึงหนึ่งถึงหลายคน② ใช้การเชื่อมโยงแบบหนึ่งถึงหลายต่อหลายครั้ง③ อย่าใช้แบบตัวต่อตัวใช้แบบหลายต่อหนึ่งแทน④ กำหนดค่าแคชวัตถุไม่ใช้ Set Cache ⑤ ใช้กระเป๋าสำหรับคอลเลกชันแบบหนึ่งถึงหลายครั้งและใช้ชุดสำหรับคอลเลกชันหลายต่อหลาย
⑥. ใช้ polymorphism ที่ชัดเจนในชั้นเรียนมรดก⑦ ควรมีฟิลด์ตารางน้อยลงและอย่ากลัวการเชื่อมโยงตารางหลายแห่ง มีแคชรองที่จะสนับสนุนคุณ
7. struts กลไกการทำงาน? ทำไมต้องใช้ Struts?
กลไกการทำงาน:
เวิร์กโฟลว์ของ Struts:
การเริ่มต้น ActionServlet จะถูกโหลดเมื่อเว็บแอปพลิเคชันเริ่มต้นขึ้น ActionServlet จะถูกโหลดจาก
อ่านข้อมูลการกำหนดค่าจากไฟล์ struts-config.xml และจัดเก็บไว้ในวัตถุการกำหนดค่าต่างๆ
เมื่อ ActionServlet ได้รับคำขอลูกค้ากระบวนการต่อไปนี้จะถูกดำเนินการ
-(1) ดึงอินสแตนซ์ ActionMapping ที่ตรงกับคำขอของผู้ใช้ หากไม่มีอยู่จะส่งคืนข้อมูลเส้นทางการร้องขอที่ไม่ถูกต้อง
-(2) หากอินสแตนซ์ ActionForm ไม่มีอยู่ให้สร้างวัตถุ ActionForm และบันทึกข้อมูลฟอร์มที่ส่งโดยลูกค้าไปยังวัตถุ ActionForm;
-(3) ตัดสินใจว่าจำเป็นต้องมีการตรวจสอบแบบฟอร์มตามข้อมูลการกำหนดค่าหรือไม่ หากจำเป็นต้องมีการตรวจสอบให้ใช้วิธีการตรวจสอบความถูกต้องของ ActionForm ()
-(4) หากวิธีการตรวจสอบ () ของ actionform ส่งคืนค่า null หรือส่งคืนวัตถุ Actuiberrors ที่ไม่มีการกระทำของ ActionMessage นั่นหมายความว่าการตรวจสอบแบบฟอร์มนั้นสำเร็จ
-(5) Actionservlet ตัดสินใจว่าการดำเนินการใดที่จะส่งต่อคำขอตามข้อมูลการแมปที่มีอยู่ใน ActionMapping หากอินสแตนซ์การกระทำที่สอดคล้องกันไม่มีอยู่ให้สร้างอินสแตนซ์นี้ก่อนจากนั้นเรียกใช้วิธีการดำเนินการของการดำเนินการ ();
-(6) วิธีการดำเนินการของการดำเนินการ () ส่งคืนวัตถุ ActionForward และ ActionServlet ส่งต่อคำขอของลูกค้าไปยังองค์ประกอบ JSP ที่ชี้ไปที่วัตถุ ActionForward;
-(7) วัตถุ ActionForward ชี้ไปที่องค์ประกอบ JSP เพื่อสร้างหน้าเว็บแบบไดนามิกและส่งคืนไปยังไคลเอนต์
ทำไมต้องใช้:
การเกิดขึ้นของ JSP, Servlet และ Javabean Technologies ช่วยให้เรามีความเป็นไปได้ในการสร้างระบบแอปพลิเคชันองค์กรที่ทรงพลัง แต่ระบบที่สร้างขึ้นด้วยเทคโนโลยีเหล่านี้มีความวุ่นวายมากดังนั้นยิ่งไปกว่านั้นเราจำเป็นต้องมีกฎและกฎในการจัดระเบียบเทคโนโลยีเหล่านี้ นี่คือกรอบและ struts เข้ามา
แอปพลิเคชันที่พัฒนาขึ้นบนพื้นฐานของ struts ประกอบด้วยสามประเภทของส่วนประกอบ: ส่วนประกอบคอนโทรลเลอร์ส่วนประกอบของโมเดลและส่วนประกอบมุมมอง
8. การตรวจสอบเฟรมเวิร์กตรวจสอบของ Struts อย่างไร?
กำหนดค่าพรอมต์ข้อผิดพลาดเฉพาะในไฟล์การกำหนดค่า Struts จากนั้นเรียกใช้เมธอดการตรวจสอบ () ในฟอร์เบียน
9. มาพูดถึงรูปแบบการออกแบบของ Struts
โหมด MVC: ActionServler ถูกโหลดและเริ่มต้นเมื่อเว็บแอปพลิเคชันเริ่มต้น เมื่อผู้ใช้ส่งแบบฟอร์มวัตถุ ActionForm ที่กำหนดค่าจะถูกสร้างและกรอกข้อมูลในข้อมูลที่สอดคล้องกันของแบบฟอร์ม Actionservler ตัดสินใจว่าจำเป็นต้องมีการตรวจสอบแบบฟอร์มตามการตั้งค่าที่กำหนดค่าโดยไฟล์ struts-config.xml หรือไม่ หากจำเป็นให้โทรตรวจสอบการตรวจสอบความถูกต้องของ ActionForm () และเลือกการดำเนินการที่จะส่งคำขอไปยัง หากการกระทำไม่มีอยู่จริง Actionservlet จะสร้างวัตถุนี้ก่อนจากนั้นเรียกใช้วิธีการดำเนินการของการดำเนินการ () ดำเนินการ () รับข้อมูลจากวัตถุ ActionForm เสร็จสิ้นตรรกะทางธุรกิจและส่งคืนวัตถุ ActionForward ActionServlet ส่งต่อคำขอไคลเอนต์ไปยังองค์ประกอบ JSP ที่ระบุโดยวัตถุ ActionForward JSP ที่ระบุโดยวัตถุ ActionForward จะสร้างหน้าเว็บแบบไดนามิกและส่งคืนไปยังไคลเอนต์
10. กลไกการทำงานของฤดูใบไม้ผลิและทำไม?
①.Spring MVC โปรดส่งคำขอทั้งหมดไปยัง DispatchERServlet ซึ่งจะมอบความไว้วางใจโมดูลอื่น ๆ ของระบบแอปพลิเคชันเพื่อรับผิดชอบการประมวลผลจริงของคำขอ
②.Dispatcherservletค้นหา handlermappings หนึ่งรายการขึ้นไปและค้นหาคอนโทรลเลอร์ที่จัดการคำขอ
③.Dispatcherservletโปรดส่งคำขอไปยังคอนโทรลเลอร์เป้าหมาย
④. หลังจากคอนโทรลเลอร์ดำเนินการประมวลผลตรรกะทางธุรกิจมันจะส่งคืน ModelandView
⑤.Dispathcher Querys หนึ่ง ViewResolver View View Residers และค้นหาวัตถุมุมมองที่ระบุโดย Object ModelAndView ⑥ วัตถุมุมมองมีหน้าที่รับผิดชอบในการแสดงผลและส่งคืนให้กับลูกค้า
ทำไมต้องใช้:
{AOP อนุญาตให้นักพัฒนาสร้างข้อกังวลที่ไม่ใช่พฤติกรรมเรียกว่าข้อกังวลข้ามการตัดและแทรกลงในรหัสแอปพลิเคชัน หลังจากใช้ AOP บริการสาธารณะ (เช่นบันทึกการคงอยู่การทำธุรกรรม ฯลฯ ) สามารถแบ่งออกเป็นด้านและนำไปใช้กับวัตถุโดเมนโดยไม่เพิ่มความซับซ้อนของแบบจำลองวัตถุของวัตถุโดเมน
IOC อนุญาตให้สร้างสภาพแวดล้อมแอปพลิเคชันที่สามารถสร้างวัตถุและผ่านวัตถุร่วมกันของพวกเขาไปยังวัตถุเหล่านั้น ตามคำว่าการผกผัน IOC เป็นเหมือน jndi ย้อนกลับ โดยไม่ต้องใช้โรงงานที่เป็นนามธรรมตัวระบุตำแหน่งบริการซิงเกิลและการก่อสร้างตรงวัตถุแต่ละชิ้นจะถูกสร้างขึ้นด้วยวัตถุที่ทำงานร่วมกัน ดังนั้นผู้ทำงานร่วมกันได้รับการจัดการโดยคอนเทนเนอร์
ฤดูใบไม้ผลิเป็นภาชนะ IOC แม้ว่าจะเป็นเฟรมเวิร์ก AOP ก็ตาม สิ่งที่ดีที่สุดเกี่ยวกับฤดูใบไม้ผลิคือช่วยให้คุณเปลี่ยนวัตถุ ด้วยฤดูใบไม้ผลิเพียงเพิ่มการพึ่งพา (วัตถุการทำงานร่วมกัน) โดยใช้คุณสมบัติ Javabean และไฟล์การกำหนดค่า วัตถุการทำงานร่วมกันที่มีอินเทอร์เฟซที่คล้ายกันสามารถเปลี่ยนได้ง่ายเมื่อจำเป็น -
Framework Spring เป็นสถาปัตยกรรมแบบลำดับชั้นซึ่งประกอบด้วย 7 โมดูลที่กำหนดไว้อย่างดี โมดูลสปริงถูกสร้างขึ้นบนคอนเทนเนอร์หลักที่กำหนดวิธีการสร้างถั่วกำหนดค่าและจัดการ
แต่ละโมดูล (หรือส่วนประกอบ) ที่ประกอบขึ้นเป็นสปริงเฟรมเวิร์กสามารถมีอยู่คนเดียวหรือนำไปใช้ร่วมกับหนึ่งหรือมากกว่าหนึ่งโมดูล ฟังก์ชั่นของแต่ละโมดูลมีดังนี้:
☆ core container: core container ให้ฟังก์ชั่นพื้นฐานของกรอบสปริง องค์ประกอบหลักของคอนเทนเนอร์หลักคือ beanfactory ซึ่งเป็นการดำเนินการตามรูปแบบของโรงงาน BeanFactory ใช้โหมดการผกผันของการควบคุม (IOC) เพื่อแยกข้อมูลจำเพาะการกำหนดค่าและการพึ่งพาของแอปพลิเคชันจากรหัสแอปพลิเคชันจริง
☆บริบทสปริง: บริบทสปริงเป็นไฟล์การกำหนดค่าที่ให้ข้อมูลบริบทแก่เฟรมเวิร์กสปริง บริบทฤดูใบไม้ผลิรวมถึงบริการระดับองค์กรเช่น JNDI, EJB, อีเมล, ความเป็นสากล, ความสามารถในการจัดตารางเวลาตรวจสอบ
☆ Spring AOP: ผ่านคุณสมบัติการจัดการการกำหนดค่าโมดูล Spring AOP รวมฟังก์ชั่นการเขียนโปรแกรมที่มุ่งเน้นด้านเข้าไว้ในเฟรมเวิร์กสปริงโดยตรง ดังนั้นจึงเป็นเรื่องง่ายที่จะทำให้วัตถุใด ๆ ที่จัดการโดย Framework Spring Support AOP โมดูล Spring AOP ให้บริการการจัดการธุรกรรมสำหรับวัตถุในแอปพลิเคชันที่ใช้ฤดูใบไม้ผลิ โดยการใช้ Spring AOP การจัดการธุรกรรมที่ประกาศสามารถรวมเข้ากับแอปพลิเคชันโดยไม่ต้องพึ่งพาส่วนประกอบ EJB
☆ Spring DAO: ชั้น JDBC DAO Abstraction ให้ลำดับชั้นข้อยกเว้นที่มีความหมายซึ่งสามารถใช้ในการจัดการการจัดการข้อยกเว้นและข้อความแสดงข้อผิดพลาดที่ถูกโยนทิ้งโดยผู้ขายฐานข้อมูลที่แตกต่างกัน ลำดับชั้นข้อยกเว้นทำให้การจัดการข้อผิดพลาดง่ายขึ้นและลดจำนวนรหัสข้อยกเว้นที่ต้องเขียน (เช่นการเปิดและปิดการเชื่อมต่อ) ข้อยกเว้นที่มุ่งเน้น JDBC ของ Spring DAO เป็นไปตามลำดับชั้นของ DAO ข้อยกเว้นทั่วไป
☆ฤดูใบไม้ผลิ ORM: Framework Spring แทรกกรอบ ORM หลายกรอบดังนั้นจึงจัดหาเครื่องมือความสัมพันธ์ Object Object ของ ORM รวมถึง JDO, Hibernate และ Map Ibatis SQL ทั้งหมดนี้ติดตามการทำธุรกรรมทั่วไปของฤดูใบไม้ผลิและลำดับชั้นของ DAO ข้อยกเว้น
☆สปริงเว็บโมดูล: โมดูลบริบทของเว็บถูกสร้างขึ้นบนโมดูลบริบทของแอปพลิเคชันและให้บริบทสำหรับแอปพลิเคชันบนเว็บ ดังนั้น Framework Spring จึงสนับสนุนการรวมเข้ากับ Struts จาการ์ตา โมดูลเว็บยังช่วยลดความซับซ้อนของการจัดการคำขอหลายส่วนและพารามิเตอร์การร้องขอที่มีผลผูกพันกับวัตถุโดเมน
☆ Spring MVC Framework: MVC Framework เป็นการใช้งาน MVC ที่ใช้งานได้อย่างสมบูรณ์สำหรับการสร้างเว็บแอปพลิเคชัน ผ่านอินเทอร์เฟซนโยบายเฟรมเวิร์ก MVC จะสามารถกำหนดค่าได้สูงและ MVC มีเทคโนโลยีมุมมองจำนวนมากรวมถึง JSP, ความเร็ว, กระเบื้อง, ITEXT และ POI
ความสามารถของสปริงเฟรมเวิร์กสามารถใช้ในเซิร์ฟเวอร์ J2EE ใด ๆ และส่วนใหญ่เหมาะสำหรับสภาพแวดล้อมที่ไม่มีการจัดการ จุดหลักของฤดูใบไม้ผลิคือ: สนับสนุนวัตถุธุรกิจและการเข้าถึงข้อมูลที่สามารถนำกลับมาใช้ใหม่ได้ซึ่งไม่ผูกพันกับบริการ J2EE ที่เฉพาะเจาะจง ไม่ต้องสงสัยเลยว่าวัตถุดังกล่าวสามารถนำกลับมาใช้ใหม่ระหว่างสภาพแวดล้อม J2EE ที่แตกต่างกัน (เว็บหรือ EJB) แอปพลิเคชันแบบสแตนด์อโลนสภาพแวดล้อมการทดสอบ
IOC และ AOP
แนวคิดพื้นฐานของการควบคุมรูปแบบการผกผัน (หรือที่เรียกว่าการแทรกแซงการพึ่งพา) คือการไม่สร้างวัตถุ แต่อธิบายถึงวิธีการสร้าง มันไม่ได้เชื่อมต่อโดยตรงกับวัตถุและบริการในรหัส แต่อธิบายว่าส่วนประกอบใดที่ต้องการบริการใดในไฟล์การกำหนดค่า คอนเทนเนอร์ (คอนเทนเนอร์ IOC ในกรอบฤดูใบไม้ผลิ) มีหน้าที่เชื่อมโยงสิ่งเหล่านี้เข้าด้วยกัน
ในสถานการณ์ IOC ทั่วไปคอนเทนเนอร์จะสร้างวัตถุทั้งหมดและตั้งค่าคุณสมบัติที่จำเป็นเพื่อเชื่อมต่อเข้าด้วยกันตัดสินใจว่าจะเรียกวิธีการเมื่อใด ตารางต่อไปนี้แสดงรูปแบบการใช้งานของ IOC
คอนเทนเนอร์ IOC ของ Spring Framework ถูกนำมาใช้โดยใช้ Type 2 และ Type 3
การเขียนโปรแกรมที่มุ่งเน้น
การเขียนโปรแกรมที่มุ่งเน้นด้านต่าง ๆ AOP เป็นเทคนิคการเขียนโปรแกรมที่ช่วยให้โปรแกรมเมอร์สามารถปรับพฤติกรรมแบบโมดูลาร์ที่ตัดความกังวลหรือการแบ่งความรับผิดชอบแบบข้ามโดยทั่วไป (เช่นการบันทึกและการจัดการธุรกรรม) การก่อสร้างหลักของ AOP คือแง่มุมซึ่งห่อหุ้มพฤติกรรมเหล่านั้นที่ส่งผลกระทบต่อหลายคลาสลงในโมดูลที่นำมาใช้ซ้ำได้
AOP และ IOC เป็นเทคโนโลยีเสริมซึ่งทั้งสองใช้วิธีการแบบแยกส่วนเพื่อแก้ปัญหาที่ซับซ้อนในการพัฒนาแอปพลิเคชันขององค์กร ในการพัฒนาเชิงวัตถุโดยทั่วไปอาจจำเป็นต้องใช้คำสั่งการบันทึกในทุกวิธีและคลาส Java เพื่อใช้ฟังก์ชันการบันทึก ในวิธี AOP บริการบันทึกสามารถถูกทำให้เป็นโมดูลในทางกลับกันและนำไปใช้กับส่วนประกอบที่ต้องใช้บันทึก แน่นอนว่าข้อได้เปรียบคือชั้นเรียน Java ไม่จำเป็นต้องรู้ว่ามีการมีอยู่ของบริการบันทึกและพวกเขาไม่จำเป็นต้องพิจารณารหัสที่เกี่ยวข้อง ดังนั้นรหัสแอปพลิเคชันที่เขียนในฤดูใบไม้ผลิ AOP จึงถูกเชื่อมโยงกันอย่างหลวม ๆ
ฟังก์ชั่นของ AOP ถูกรวมเข้ากับบริบทของการจัดการธุรกรรมฤดูใบไม้ผลิการบันทึกและคุณสมบัติอื่น ๆ อีกมากมาย
คอนเทนเนอร์ IOC
หัวใจสำคัญของการออกแบบของฤดูใบไม้ผลิคือแพ็คเกจ org.springframework.bans ซึ่งออกแบบมาเพื่อใช้กับส่วนประกอบ javabean แพ็คเกจนี้มักจะไม่ได้ใช้โดยตรงโดยผู้ใช้ แต่โดยเซิร์ฟเวอร์ใช้เป็นตัวกลางพื้นฐานสำหรับฟังก์ชั่นอื่น ๆ ส่วนใหญ่ นามธรรมที่ทันสมัยที่สุดต่อไปคืออินเตอร์เฟส BeanFactory ซึ่งเป็นการดำเนินการตามรูปแบบการออกแบบโรงงานที่อนุญาตให้สร้างและเรียกคืนวัตถุได้ Beanfactory ยังสามารถจัดการความสัมพันธ์ระหว่างวัตถุ
Beanfactory รองรับสองโมเดลวัตถุ
□โมเดล Singleton ให้อินสแตนซ์ของวัตถุที่ใช้ร่วมกันด้วยชื่อเฉพาะที่สามารถเรียกคืนได้เมื่อสอบถาม Singleton เป็นรุ่นวัตถุเริ่มต้นและใช้งานได้บ่อยที่สุด เหมาะสำหรับวัตถุบริการไร้สัญชาติ
□โมเดลต้นแบบช่วยให้มั่นใจได้ว่าวัตถุแยกต่างหากจะถูกสร้างขึ้นทุกครั้งที่ถูกดึงออกมา ต้นแบบเหมาะสมที่สุดเมื่อผู้ใช้แต่ละคนต้องการวัตถุของตัวเอง
แนวคิดของโรงงานถั่วเป็นพื้นฐานของฤดูใบไม้ผลิเป็นภาชนะ IOC IOC เปลี่ยนความรับผิดชอบในการจัดการสิ่งต่าง ๆ จากรหัสแอปพลิเคชันเป็นเฟรมเวิร์ก ดังที่ฉันจะแสดงให้เห็นในตัวอย่างถัดไปกรอบสปริงใช้คุณสมบัติ Javabean และข้อมูลการกำหนดค่าเพื่อระบุการพึ่งพาที่ต้องตั้งค่า
อินเทอร์เฟซ beanfactory
เนื่องจาก org.springframework.beans.factory.beanfactory เป็นอินเทอร์เฟซอย่างง่ายจึงสามารถนำไปใช้สำหรับวิธีการจัดเก็บข้อมูลพื้นฐานต่างๆ คำจำกัดความของ BeanFactory ที่ใช้กันมากที่สุดคือ XMLBeanFactory ซึ่งโหลดถั่วตามคำจำกัดความในไฟล์ XML ดังที่แสดงในรายการ 1
รายการ 1. xmlbeanfactory
BeanFactory Factory = ใหม่ XMLBeanFactory (ใหม่ FileInputSteam ("myBean.xml"));ถั่วที่กำหนดไว้ในไฟล์ XML นั้นมีการโหลดเชิงลบซึ่งหมายความว่าถั่วจะไม่เริ่มต้นจนกว่าจะจำเป็น ในการดึงถั่วจาก beanfactory เพียงเรียกใช้วิธี getBean () และส่งผ่านในชื่อของถั่วที่จะเรียกคืนดังแสดงในรายการ 2
รายการ 2. getBean ()
MyBean MyBean = (MyBean) Factory.getBean ("MyBean");คำจำกัดความของถั่วแต่ละตัวสามารถเป็นทั้ง pojo (กำหนดด้วยชื่อคลาสและคุณสมบัติการเริ่มต้น Javabean) หรือโรงงานเบียน อินเทอร์เฟซ FactoryBean จะเพิ่มระดับทางอ้อมให้กับแอปพลิเคชันที่สร้างขึ้นโดยใช้ Framework Spring
ตัวอย่าง IOC
วิธีที่ง่ายที่สุดในการทำความเข้าใจการผกผันการควบคุมคือการดูแอปพลิเคชันที่ใช้งานได้จริง ในการสรุปส่วนที่ 1 ของซีรีส์ฤดูใบไม้ผลิสามส่วนฉันใช้ตัวอย่างที่แสดงให้เห็นถึงวิธีการฉีดพึ่งพาแอปพลิเคชันผ่านคอนเทนเนอร์ IOC ในฤดูใบไม้ผลิ (แทนที่จะสร้างมันใน)
ฉันใช้กรณีการใช้งานการเปิดบัญชีเครดิตออนไลน์เป็นจุดเริ่มต้น สำหรับการใช้งานนี้การเปิดใช้งานบัญชีเครดิตกำหนดให้ผู้ใช้ต้องโต้ตอบกับบริการต่อไปนี้:
☆บริการประเมินระดับเครดิตข้อมูลประวัติเครดิตของผู้ใช้แบบสอบถาม
☆บริการลิงค์ข้อมูลระยะไกลแทรกข้อมูลลูกค้าเชื่อมต่อข้อมูลลูกค้ากับข้อมูลบัตรเครดิตและธนาคารสำหรับการหักบัญชีอัตโนมัติ (หากจำเป็น)
☆บริการอีเมลส่งอีเมลผู้ใช้เกี่ยวกับสถานะบัตรเครดิต
สามอินเตอร์เฟส
สำหรับตัวอย่างนี้ฉันคิดว่าบริการที่มีอยู่แล้วและมันก็เป็นการรวมเข้าด้วยกันเข้าด้วยกันอย่างหลวม ๆ รายการต่อไปนี้แสดงอินเทอร์เฟซโปรแกรมแอปพลิเคชันสำหรับสามบริการ
รายการ 3. CreditRatingInterface
อินเทอร์เฟซสาธารณะ CreditRatingInterface {Public Boolean GetUserCredithistoryInformation (Icustomer Icustomer);}อินเทอร์เฟซการประเมินระดับเครดิตที่แสดงในรายการ 3 ให้ข้อมูลประวัติเครดิต ต้องใช้วัตถุลูกค้าที่มีข้อมูลลูกค้า การใช้งานอินเทอร์เฟซนี้จัดทำโดยคลาสเครดิต
รายการ 4. CreditLinkingInterface
อินเตอร์เฟสสาธารณะ CreditLinkingInterface {Public String getUrl (); โมฆะสาธารณะ seturl (String url); โมฆะสาธารณะ linkcreditbankaccount () โยนข้อยกเว้น;}อินเทอร์เฟซ Credit Link เชื่อมต่อข้อมูลประวัติเครดิตกับข้อมูลธนาคาร (ถ้าจำเป็น) และแทรกข้อมูลบัตรเครดิตของผู้ใช้ อินเทอร์เฟซ Credit Link เป็นบริการระยะไกลและการสืบค้นจะดำเนินการผ่านวิธี Geturl () URL ถูกตั้งค่าโดยกลไกการกำหนดค่าถั่วของ Spring Framework ซึ่งฉันจะพูดถึงในภายหลัง การใช้งานอินเทอร์เฟซนี้จัดทำโดยคลาส CreditLinking
รายการ 5. EmailInterface
อินเทอร์เฟซสาธารณะ emailInterface {โมฆะสาธารณะ sendemail (iCustomer iCustomer); สตริงสาธารณะ getFromeMail (); โมฆะสาธารณะ setFromeMail (สตริงจาก mEmail); สตริงสาธารณะ getPassword (); void setword สาธารณะ (สตริงรหัสผ่าน)ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน