<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
    主站蜘蛛池模板: 2020因为爱你带字幕免费观看全集| 无码专区一va亚洲v专区在线| 亚洲精华液一二三产区| 亚洲av手机在线观看| 可以免费观看的毛片| 2020天堂在线亚洲精品专区| 亚洲熟伦熟女新五十路熟妇| 98精品全国免费观看视频| 亚洲av最新在线观看网址| 西西人体44rt高清亚洲| 国产女高清在线看免费观看 | 最近中文字幕高清免费中文字幕mv | 日韩免费观看视频| 爱丫爱丫影院在线观看免费| 欧洲 亚洲 国产图片综合| 在线日韩日本国产亚洲| 成人免费毛片视频| 免费无码一区二区三区| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 国产免费一区二区三区| 中国一级毛片免费看视频| 亚洲中文字幕无码av| 亚洲AV无码一区东京热久久| 国产免费牲交视频| 老司机在线免费视频| a级毛片免费播放| 日韩精品视频在线观看免费| 亚洲乱码在线播放| 亚洲第一中文字幕| 国产亚洲精品无码专区| 破了亲妺妺的处免费视频国产| 99在线免费观看视频| 久久不见久久见免费影院www日本| 亚洲精品无码你懂的| 亚洲啪啪免费视频| 亚洲va在线va天堂va不卡下载| 亚洲性在线看高清h片| 国产男女猛烈无遮挡免费网站 | 免费看少妇高潮成人片| 无码 免费 国产在线观看91| 亚洲精品美女久久7777777|