یه بار برای همیشه، فرانت‌اندو اصولی یاد بگیر! یه بار برای همیشه، فرانت‌اندو اصولی یاد بگیر!
🎯 ثبت نام

درس دوازدهم : آموزش شی Inner Beans و کاربرد آن

آشنایی با شی Inner Beans و کاربرد آن

همانطور که میدانید ، کلاسهای درونی در جاوا ( Java inner classes ) کلاس هایی هستند که درون محدوده کد یک کلاس دیگر تعریف می شوند . به همین صورت inner beans نیز اشیای bean ی هستند که در درون محدوده کد یک bean دیگر تعریف می شوند . بنابراین یک که درون یک تگ یا تعریف شود ، یک inner bean نامیده شده و به صورت مثال زیر کدنویسی می شود :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
xml version="1.0" encoding="UTF-8"?>
 
 
 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
    id="outerBean" class="...">
 
      name="target">
 
         id="innerBean" class="..."/><button></button>
مثال عملی کار با inner bean :

بیاید با اجرای یک مثال عملی ، نحوه تعریف inner bean و استفاده از آن را در محیط Eclipse مشاهده کنیم . برای این منظور مراحل زیر را انجام دهید :


  1. یک پروژه جدید با نام SpringExample را ایجاد نموده و همچنین در زیر پوشه src پروژه ، پکیج tahlildadeh.com را اضافه کنید .
  2. همانطور که در درس آموزش ایجاد اولین برنامه Spring نشان دادیم ، به وسیله دکمه Add External JARs کتابخانه های مورد نیاز Spring را به پروژه خود اضافه کنید .
  3. در پکیج Com.tahlildadeh کلاس های جاوا Main App ، SpellChecker و TextEditor را اضافه نمایید .
  4. در پوشه Src پروژه ، فایل پیکربندی اطلاعات Beans.Xml را اضافه کنید .
  5. مرحله آخر تولید محتوای کلیه فایل های جاوا پروژه و تنظیم فایل پیکربندی اطلاعات به صورت زیر است .

محتویات فایل TextEditor.java بایستی به صورت زیر باشد :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class TextEditor {
 
   private SpellChecker spellChecker;
 
    // a setter method to inject the dependency.
 
   public void setSpellChecker(SpellChecker spellChecker) {
 
      System.out.println("Inside setSpellChecker." );
 
      this.spellChecker = spellChecker;
 
   }
 
      // a getter method to return spellChecker
 
   public SpellChecker getSpellChecker() {
 
      return spellChecker;
 
   }
 
    public void spellCheck() {
 
      spellChecker.checkSpelling();
 
   }
 
}
<button></button>

کد زیر نیز مربوط به فایل کلاس وابسته ( dependent class ) با نام SpellChecker است :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.tahlildadeh;
 
 public class SpellChecker {
 
   public SpellChecker(){
 
      System.out.println("Inside SpellChecker constructor." );
 
   }
 
    public void checkSpelling(){
 
      System.out.println("Inside checkSpelling." );
 
   }
 
   }
 
<button></button>

همچنین کد فایل اصلی برنامه یا MainApp.java به صورت زیر است :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.tahlildadeh;
 
 import org.springframework.context.ApplicationContext;
 
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class MainApp {
 
   public static void main(String[] args) {
 
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
 
       TextEditor te = (TextEditor) context.getBean("textEditor");
 
       te.spellCheck();
 
   }
 
}
 
<button></button>

در نهایت نیز کد زیر مربوط به فایل پیکربندی اطلاعات برنامه یا Beabs,Xml می باشد . در کد زیر از روش Setter-based برای DI استفاده شده و اشیاء به صورت innerbeans تعریف شده اند :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
xml version="1.0" encoding="UTF-8"?>
 
 
 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
     
 
    id="textEditor" class="com.tahlildadeh.TextEditor">
 
       name="spellChecker">
 
          id="spellChecker" class="com.tahlildadeh.SpellChecker"/><button></button>

پس از ایجاد فایل های اصلی و پیکربندی اطلاعات برنامه ، آن را در محیط Eclipse اجرا می کنیم . اگر همه کدها درست باشند ، خروجی زیر بایستی حاصل شود :


1
2
3
4
5
6
7
Inside SpellChecker constructor.
 
Inside setSpellChecker.
 
Inside checkSpelling.
 
<button></button>
1395/05/28 3228 1360
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...