วิธีฉีดพึ่งพาการทำงานในฤดูใบไม้ผลิ?

Dependency Injection

ภาพรวม

ฉีดฤดูใบไม้ผลิถั่วยังเป็นที่รู้จักกันแพร่หลายเป็น 'พึ่งพาการฉีด (ของ)’. หัวใจของกรอบฤดูใบไม้ผลิเป็น 'ผกผันของการควบคุม (IoC)’ และ DI เป็นส่วนการดำเนินงานของ IoC. เราจะเริ่มต้นการสนทนาของเราด้วยสมมติฐานที่ว่าแนวคิดและวัตถุประสงค์ของ IoC และ DI คือรู้อยู่แล้วว่า.

In this article, เราจะเน้นประเภทที่แตกต่างกันของการฉีดถั่ว Spring มีตัวอย่างการเข้ารหัสบางส่วนในทางปฏิบัติ.








พึ่งพาการฉีด

ฉีดถั่ว Spring สามารถดำเนินการในสองวิธีที่สำคัญ, หนึ่งเป็นที่รู้จักกันสร้าง DI-based และอีกคนหนึ่งเป็นที่รู้จักกันเป็น Di Setter ตาม. ในส่วนย่อยต่อไปนี้เราจะตรวจสอบวิธีการเหล่านี้สามารถทำได้.

คอนสตรัคตาม DI

ใน DI คอนสตรัคตาม, อ้างอิงถูกฉีดผ่านการก่อสร้าง. ข้อโต้แย้งของผู้สร้างแต่ละคนเป็นพึ่งพาวัตถุ / ถั่ว. ภาชนะฤดูใบไม้ผลิจะเรียกก่อสร้างที่มีข้อโต้แย้ง.

ขอให้เราตรวจสอบตัวอย่างหนึ่ง. มีสองชั้นเรียน, one is the ประเทศ การเรียนและอื่น ๆ หนึ่งเป็น สถานะ ชั้น. The ประเทศ ชั้นจะมีการพึ่งพาการ สถานะ ชั้น. So, เราจะผ่านการพึ่งพาไป ประเทศ ระดับผ่านคอนสตรัคของมัน (ที่แสดงด้านล่าง).

Listing 1: ระดับประเทศ

com.techalpine.spring แพคเกจ;

สาธารณะคุณภาพระดับประเทศ {

รัฐรัฐภาคเอกชน;

ประเทศสาธารณะ(รัฐรัฐ) {

System.out.println(“คอนสตรัคในประเทศ” );

this.state = รัฐ;

}

stateName โมฆะสาธารณะ() {

state.stateName();

}

}








Now, พึ่งพานี้สามารถใช้ในการเรียกวิธีการที่แตกต่างกัน.

ต่อไปนี้เป็น สถานะ โค้ดระดับ.

Listing 2: ระดับรัฐ

com.techalpine.spring แพคเกจ;

รัฐระดับประชาชน {

กองกลาง(){

System.out.println(“ภายในรัฐคอนสตรัค” );

}

stateName โมฆะสาธารณะ() {

System.out.println(“ภายในชื่อรัฐ: West Bengal”);

}

}

ต่อไปนี้คือการตั้งค่าไฟล์ XML เพื่อลวดถั่วเหล่านั้นและการอ้างอิงของพวกเขา. รหัสถั่ว ('stateBean') of the สถานะ ชั้นถูกนำมาใช้เป็นข้อมูลอ้างอิงอาร์กิวเมนต์คอนสตรัคใน ประเทศ การกำหนดระดับถั่ว. Now, ถั่วจะมีการกำหนดและแบบใช้สายเข้าด้วยกัน.

Listing 3: การตั้งค่าไฟล์ XML

<?xml version=”1.0″ encoding=”UTF-8″?>

<ถั่ว xmlns =”ที่ http://www.springframework.org/schema/beans”

xmlns:xsi=”ที่ http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”ที่ http://www.springframework.org/schema/beans

ที่ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd”>

<!– ความหมายสำหรับประเทศถั่ว –>

<ถั่ว id =”countryBean” class =”com.techalpine.spring.Country”>

<คอนสตรัค-Arg เตะ =”stateBean”/>

</ถั่ว>

<!– ความหมายสำหรับรัฐถั่ว –>

<ถั่ว id =”stateBean” class =”com.techalpine.spring.State”>

</ถั่ว>

</ถั่ว>

ต่อไปนี้เป็นชั้นหลักในการทดสอบตัวสร้างตามฉีดถั่ว.

Listing 4: ไฟล์โปรแกรมหลัก

com.techalpine.spring แพคเกจ;

นำเข้า org.springframework.context.ApplicationContext;

นำเข้า org.springframework.context.support.FileSystemXmlApplicationContext;

TestBeanInjection เรียนสาธารณะ {

ประชาชนเป็นโมฆะหลักแบบคงที่(เชือก[] args) {

ApplicationContext บริบท = FileSystemXmlApplicationContext ใหม่(

“WebContent / WEB-INF / beanConfig.xml”);

ประเทศ countryobj = (ประเทศ)context.getBean(“countryBean”);

countryobj.stateName();

}

}








Now, เรียกชั้นเป็นโปรแกรมแบบสแตนด์อะโลนและมันจะแสดงผลลัพธ์ต่อไปนี้บนคอนโซล.

ภายในรัฐคอนสตรัค
คอนสตรัคในประเทศ
ภายในชื่อรัฐ: West Bengal

ชุดฐาน DI

ใน DI Setter ตาม, อ้างอิงจะถูกส่งผ่านด้วยวิธีการตั้งค่า. ภาชนะฤดูใบไม้ผลิจะเรียกวิธีการตั้งค่าเหล่านั้นเพื่อยกตัวอย่างถั่ว. Here, กลไกและส่วนประกอบเกือบจะคล้ายกับ DI คอนสตรัคตาม. ความแตกต่างเพียงอย่างเดียวคือ, ในการผ่านการอ้างอิงและการกำหนดค่าของ XML. ในการฉีด Setter ตาม, <คุณสมบัติ> แท็กจะถูกนำมาใช้แทน <คอนสตรัค-หาเรื่อง> tag.








ข้อสรุป

ในบทความนี้เราได้อธิบายวิธีการที่ว่าถั่วฤดูใบไม้ผลิสามารถฉีด. ไม่มีกฎที่ชัดเจนเมื่อจะใช้ DI Setter หรือคอนสตรัคที่ใช้เป็น. โดยทั่วไปเราไปสำหรับการสร้างตาม DI เมื่ออ้างอิงมีผลบังคับใช้, และเลือก Setter ตาม DI เมื่ออ้างอิงเป็นตัวเลือก. แต่การรวมกันของทั้งสองจะได้รับอนุญาต.

 

============================================= ============================================== ซื้อหนังสือ techalpine ที่ดีที่สุดใน Amazon,en,ช่างไฟฟ้า CT Chestnutelectric,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share