บทความนี้ส่วนใหญ่สำรวจเนื้อหาที่เกี่ยวข้องเกี่ยวกับขอบเขตและวงจรชีวิตของถั่วดังต่อไปนี้
ขอบเขตของถั่ว
ฤดูใบไม้ผลิ 3 กำหนดขอบเขตห้าแห่งสำหรับถั่วคือซิงเกิลตัน (ซิงเกิลตัน), ต้นแบบ (ต้นแบบ), คำขอ, เซสชั่นและเซสชั่นทั่วโลก มีการอธิบายขอบเขตทั้งห้าดังนี้:
1.Singleton: โหมดซิงเกิลตันจะมีอินสแตนซ์ถั่วที่ใช้ร่วมกันเพียงตัวเดียวในคอนเทนเนอร์ IOC ฤดูใบไม้ผลิไม่ว่าจะมีถั่วกี่ตัวที่อ้างถึงมันพวกเขาจะชี้ไปที่วัตถุเดียวกันเสมอ Singleton Scope เป็นขอบเขตเริ่มต้นในฤดูใบไม้ผลิ นอกจากนี้คุณยังสามารถกำหนดถั่วเป็นโหมดซิงเกิลตันและกำหนดค่าเป็น:
<bean id="userDao" scope="singleton"/>
2.prototype: โหมดต้นแบบ ทุกครั้งที่ได้รับถั่วที่กำหนดต้นแบบผ่านคอนเทนเนอร์สปริงคอนเทนเนอร์จะสร้างอินสแตนซ์ถั่วใหม่ แต่ละอินสแตนซ์ถั่วมีคุณลักษณะและสถานะของตัวเองและ Singleton มีวัตถุเดียวในบริบททั่วโลก ตามกฎของหัวแม่มือให้ใช้ขอบเขตต้นแบบสำหรับถั่วที่มีสถานะและขอบเขตซิงเกิลสำหรับถั่วไร้สัญชาติ
3. แก้ไข: ในคำขอ HTTP คอนเทนเนอร์จะส่งคืนอินสแตนซ์เดียวกันของถั่ว อย่างไรก็ตามถั่วใหม่จะถูกสร้างขึ้นสำหรับคำขอ HTTP ที่แตกต่างกันและถั่วนั้นใช้ได้เฉพาะภายในคำขอ HTTP ปัจจุบันเท่านั้น
<bean id="loginAction" scope="request"/> สำหรับคำขอ HTTP แต่ละรายการคอนเทนเนอร์สปริงจะสร้างอินสแตนซ์ใหม่เอี่ยมตามคำจำกัดความของถั่วและอินสแตนซ์นั้นใช้ได้เฉพาะภายในคำขอ HTTP ปัจจุบันและคำขออื่น ๆ ไม่สามารถเห็นการเปลี่ยนแปลงสถานะในคำขอปัจจุบัน เมื่อคำขอ HTTP ปัจจุบันสิ้นสุดลงอินสแตนซ์ถั่วก็จะถูกทำลายเช่นกัน
4.session: ในเซสชัน HTTP คอนเทนเนอร์จะส่งคืนอินสแตนซ์เดียวกันของถั่ว สำหรับคำขอเซสชันที่แตกต่างกันจะมีการสร้างอินสแตนซ์ใหม่และอินสแตนซ์ถั่วนั้นใช้ได้ภายในเซสชันปัจจุบันเท่านั้น
<bean id="userPreference" scope="session"/> เช่นเดียวกับคำขอ HTTP สร้างอินสแตนซ์ใหม่ทุกครั้งคำขอเซสชันและไม่มีการแชร์แอตทริบิวต์ระหว่างอินสแตนซ์ที่แตกต่างกันและอินสแตนซ์นั้นใช้ได้เฉพาะภายในคำขอเซสชันของตัวเอง หากคำขอสิ้นสุดลงอินสแตนซ์จะถูกทำลาย
5. SESSION GLOBAL: ในเซสชัน HTTP ทั่วโลกคอนเทนเนอร์จะส่งคืนอินสแตนซ์เดียวกันของถั่วซึ่งใช้ได้เฉพาะเมื่อใช้บริบทพอร์ตเล็ต
วงจรชีวิตของถั่ว
หลังจากการแนะนำขอบเขตของถั่วตามที่กล่าวไว้ข้างต้นวงจรชีวิตของถั่วจะได้รับการอธิบายตามขอบเขตของถั่ว
ตู้คอนเทนเนอร์ฤดูใบไม้ผลิสามารถจัดการวงจรชีวิตของถั่วภายใต้ขอบเขตซิงเกิล ในขอบเขตนี้สปริงสามารถรู้ได้อย่างชัดเจนว่าเมื่อใดที่สร้างถั่วเมื่อการเริ่มต้นเสร็จสิ้นและเมื่อมันถูกทำลาย สำหรับถั่วขอบเขตต้นแบบฤดูใบไม้ผลิมีความรับผิดชอบในการสร้างมันเท่านั้น เมื่อคอนเทนเนอร์สร้างอินสแตนซ์ของถั่วอินสแตนซ์ของถั่วจะถูกส่งไปยังการจัดการรหัสของลูกค้า คอนเทนเนอร์สปริงจะไม่ติดตามวงจรชีวิตของมันอีกต่อไปและจะไม่จัดการวงจรชีวิตของถั่วเหล่านั้นที่กำหนดค่าเป็นขอบเขตต้นแบบ การดำเนินการของวงจรชีวิตของถั่วในฤดูใบไม้ผลิเป็นกระบวนการที่ซับซ้อนมากและผู้อ่านสามารถใช้วิธีการที่ได้รับจากฤดูใบไม้ผลิเพื่อปรับแต่งกระบวนการสร้างถั่ว ตู้คอนเทนเนอร์ฤดูใบไม้ผลิทำงานเป็นจำนวนมากก่อนที่จะตรวจสอบให้แน่ใจว่าสามารถใช้อินสแตนซ์ถั่วได้:
สรุป
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ที่หารือเกี่ยวกับขอบเขตและวงจรชีวิตของถั่วในฤดูใบไม้ผลิ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!