<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    實際應用中,某個實例的屬性可能是另一個對象的一個屬性,Spring支持將bean實例的屬性值直接賦值給一個變量

    屬性值的注入,是通過PropertyPathFactoryBean完成的,PropertyPathFactoryBean用來獲取目標bean的屬性,獲得的值可以注入到其他bean,也可以定義成新的bean

    實體類:

    package Bean.superIOCparam;

    public class Person {
       
    private Son son;
       
    private String age;
    public String getAge() {
        
    return age;
    }

    public void setAge(String age) {
        
    this.age = age;
    }

    public Son getSon() {
        
    return son;
    }

    public void setSon(Son son) {
        
    this.son = son;
    }

    }



    package Bean.superIOCparam;

    public class Son {
      
    private String age;

    public String getAge() {
        
    return age;
    }


    public void setAge(String age) {
        
    this.age = age;
    }

    }

     配置文件:提供四種注入

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>

      
    <bean id="person" class="Bean.superIOCparam.Person" singleton="false">
         
    <property name="age">
            
    <value>30</value>
         
    </property>
         
    <property name="son">
            
    <bean class="Bean.superIOCparam.Son">
               
    <property name="age">
                  
    <value>16</value>
               
    </property>
            
    </bean>
         
    </property>
      
    </bean>
      
      
    <!--如下將會將person的屬性son的屬性age傳入son1實例的age屬性-->
        
    <bean id="son1" class="Bean.superIOCparam.Son">
            
    <property name="age">
              <!--以下是訪問bean屬性的簡單方式,這樣可以將person這個bean的age屬性賦值給son1這個bean的age屬性-->
               
             <bean id="person.son.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
            
    </property>
        
    </bean>
        
        
    <!-- 以下將會獲得結果son,它將是person bean的son的數值-->
        
    <bean id="son2" class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
           
    <property name="targetBeanName">
             
    <value>person</value>
           
    </property>
           
    <property name="propertyPath">
             
    <value>son</value>
           
    </property>
        
    </bean>
        
         
    <!-- 以下將會獲得結果16,它將是person bean的son的age屬性-->
        
    <bean id="son3" class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
           
    <property name="targetBeanName">
             
    <value>person</value>
           
    </property>
           
    <property name="propertyPath">
             
    <value>son.age</value>
           
    </property>
        
    </bean>
        
        
    <!-- 以下會獲得結果為30 ,它將是獲得該bean的內部bean的age屬性-->
        
    <bean id="son4" class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
            
    <property name="targetObject">
                
    <bean class="Bean.superIOCparam.Person">
                    
    <property name="age"><value>30</value></property>
                
    </bean>
            
    </property>
            
    <property name="propertyPath"><value>age</value></property>
        
    </bean>
    </beans>


    測試代碼:

    public static void main(String[] args) throws Exception {
            
            String path
    =new Test().getClass().getResource("/").getPath();
            String realpath
    =path.substring(1, path.length());
            ApplicationContext context
    =new FileSystemXmlApplicationContext(realpath+"/superIOCparam.xml");
            Son son1
    =(Son)context.getBean("son1");
            Son son2
    =(Son)context.getBean("son2");

            System.out.println(
    "person age is:"+son1.getAge());
            System.out.println(
    "person age is:"+son2.getAge());
            System.out.println(context.getBean(
    "son3"));
            System.out.println(context.getBean(
    "son4"));
        }


    運行結果:

    person age is:16
    person age is:16
    16
    30

    posted on 2010-08-10 17:04 SIMONE 閱讀(996) 評論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 亚洲毛片αv无线播放一区 | 亚洲国产精品国自产拍AV| 亚洲欧美中文日韩视频| 中国在线观看免费高清完整版 | 亚洲乱人伦中文字幕无码| 最新欧洲大片免费在线| 亚洲综合偷自成人网第页色| 免费中文熟妇在线影片| 亚洲国产欧洲综合997久久| 日本最新免费不卡二区在线| 国产精品亚洲一区二区三区| 亚洲黄片毛片在线观看| 中文无码日韩欧免费视频| 亚洲AV无码一区二区二三区入口| 日本不卡免费新一区二区三区| 亚洲美女精品视频| 一级女人18毛片免费| 亚洲乱码国产乱码精华| 亚洲一区二区三区在线播放| 免费无码又爽又刺激网站| 久久精品国产亚洲AV电影 | 日本免费人成视频播放| 免费国产污网站在线观看不要卡| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲导航深夜福利| 波多野结衣久久高清免费 | 在线jlzzjlzz免费播放| 一级特黄色毛片免费看| 亚洲AV无码国产精品麻豆天美| 国产精品入口麻豆免费观看| 亚洲AV成人无码久久WWW| 国产精品亚洲高清一区二区| 亚洲最大免费视频网| 美女扒开尿口给男人爽免费视频| 国产成人综合亚洲AV第一页| 亚州免费一级毛片| 牛牛在线精品观看免费正| 亚洲精品视频在线观看免费| 凹凸精品视频分类国产品免费| 久久成人a毛片免费观看网站| 亚洲成aⅴ人片久青草影院按摩|