
مساء الخير
استلهمتني الدعوة لمواصلة
النشر ، لذلك استمر.
هذه المرة سننظر في الخيارات الرئيسية لتطبيق التبعية - من خلال المنشئ وعبر المستوطنين. ابحث في جميع المصادر
هناالدرس 06. التنفيذ من خلال المنشئ.
مرة أخرى ، خذ المشروع من الدرس 2 كأساس.
أضف شاعرًا آخر.
src \ main \ java \ spring \ impls \ Severyanin.javapackage spring.impls; import spring.intarfaces.Lyricist; public class Severyanin implements Lyricist { @Override public String Generate() { return " , ,\r\n" + " …\r\n" + " — — ,\r\n" + ", , . "; } }
قم بتسجيل الفصل في ملف التكوين
src \ main \ resources \ ApplicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans 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.xsd"> <bean id="LyricistBean1" class="spring.impls.Poushkin"/> <bean id="LyricistBean2" class="spring.impls.Mayakovsky"/> <bean id="LyricistBean3" class="spring.impls.Severyanin"/> </beans>
في بداية القرن العشرين ، كانت المبارزات الأدبية تحظى بشعبية كبيرة.
سنرتب مبارزة أدبية بين شاعرين. للقيام بذلك ، قم بإنشاء
المشهد src \ main \ java \ spring \ impls \ Stage.java package spring.impls; import spring.intarfaces.Lyricist; public class Stage { private Lyricist lyr1; private Lyricist lyr2; public Stage(Lyricist lyr1, Lyricist lyr2) { this.lyr1 = lyr1; this.lyr2 = lyr2; } public void Act() { System.out.println(" :"); System.out.println(lyr1.Generate()); System.out.println(); System.out.println(" :"); System.out.println(lyr2.Generate()); System.out.println(); System.out.print(" "); if (Math.random() < 0.1) { System.out.println(" ."); } else { System.out.println(" ."); } } }
من حيث المبدأ ، يمكنك تغيير
src \ main \ java \ spring \ main \ Start.java - وستعمل:
package spring.main; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.impls.Stage; import spring.intarfaces.Lyricist; public class Start { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml"); Lyricist lyr1 = context.getBean("LyricistBean2", Lyricist.class); Lyricist lyr2 = context.getBean("LyricistBean3", Lyricist.class); Stage myStage = new Stage(lyr1, lyr2); myStage.Act(); ((ConfigurableApplicationContext) context).close();
نبدأ - كل شيء يعمل. أصدر الشعراء تحفة واحدة ، على الأرجح ، فاز الثاني. لذلك يجب أن يكون ، 27 فبراير 1918 في متحف البوليتكنيك في انتخاب ملك الشعراء نورثرنر هزم ماياكوفسكي. لكننا أعطينا فلاديمير فلاديميروفيتش فرصة صغيرة. ربما في نسختك فاز.
الآن سنقوم بعمل جميع الإعدادات في ملف التكوين
src \ main \ resources \ ApplicationContext.xml ، ولا يستحق تكوين الفاصوليا بشكل صريح في ملف البدء.
<?xml version="1.0" encoding="UTF-8"?> <beans 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.xsd"> <bean id="LyricistBean1" class="spring.impls.Poushkin"/> <bean id="LyricistBean2" class="spring.impls.Mayakovsky"/> <bean id="LyricistBean3" class="spring.impls.Severyanin"/> <bean id="StageBean" class="spring.impls.Stage"> <constructor-arg ref="LyricistBean2" /> <constructor-arg ref="LyricistBean3" /> </bean> </beans>
عادةً ، يتم إنشاء الفاصوليا باستخدام المُنشئ الافتراضي بدون وسيطات. ولكن في حالتنا ، لن تعمل. دعونا نمرح الحجج الحجج إلى صناديق أخرى ولدت من Mayakovsky و Severyanin.
يبقى إزالة جميع العناصر غير الضرورية من فئة
src \ main \ java \ spring \ main \ Start.java package spring.main; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.impls.Stage; public class Start { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml"); Stage myStage = context.getBean("StageBean", Stage.class); myStage.Act(); ((ConfigurableApplicationContext) context).close();
نبدأ. كل شيء يعمل. يتم إنشاء الفاصوليا. فاز الشمالي مرة أخرى.
على أي حال ، في واقعى.
الآن دعونا نرى كيف يمكن تكوين المستوطنين.
الدرس 07. التنفيذ من خلال المستوطنين.
نواصل تعذيب المشروع السابق.
ربما يكون من الخطأ إنشاء شعراء عند إنشاء مشهد.
قم بتصحيح هذا الإشراف وقم بتغيير فئة المشهد قليلاً. لنقم بإزالة المُنشئ وإضافة محددات ل lyr1 و lyr2 من
src \ main \ java \ spring \ impls \ Stage.java package spring.impls; import spring.intarfaces.Lyricist; public class Stage { private Lyricist lyr1; private Lyricist lyr2; public void setLyr1(Lyricist lyr1) { this.lyr1 = lyr1; } public void setLyr2(Lyricist lyr2) { this.lyr2 = lyr2; } public void Act() { System.out.println(" :"); System.out.println(lyr1.Generate()); System.out.println(); System.out.println(" :"); System.out.println(lyr2.Generate()); System.out.println(); System.out.print(" "); if (Math.random() < 0.1) { System.out.println(" ."); } else { System.out.println(" ."); } } }
قم بتعديل ملف التكوين
src \ main \ resources \ ApplicationContext.xml . نزيل وسيطات المُنشئ ونضيف قيم الضبط.
<?xml version="1.0" encoding="UTF-8"?> <beans 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.xsd"> <bean id="LyricistBean1" class="spring.impls.Poushkin"/> <bean id="LyricistBean2" class="spring.impls.Mayakovsky"/> <bean id="LyricistBean3" class="spring.impls.Severyanin"/> <bean id="StageBean" class="spring.impls.Stage"> <property name="lyr1" ref="LyricistBean2"></property> <property name="lyr2" ref="LyricistBean3"></property> </bean> </beans>
لا يمكن لمس فئة البداية في هذه الحالة. نبدأ. كل شيء يعمل. لاحظ أن المنشئ ذي المعلمتين لا يبدأ للمشهد ، ولكن بعد إنشاء المشهد ، يتم تعيين مستوطنين.
يتبع ...