<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
    主站蜘蛛池模板: 亚洲人成激情在线播放| 久久久久亚洲AV片无码下载蜜桃| 亚洲熟妇av午夜无码不卡 | 亚洲成aⅴ人在线观看| 91热久久免费精品99| 久久久无码精品亚洲日韩按摩| 98精品全国免费观看视频| 亚洲国产老鸭窝一区二区三区| 99热这里有免费国产精品| 亚洲最大黄色网站| 日韩欧美一区二区三区免费观看| 亚洲色成人网站WWW永久四虎 | 色偷偷尼玛图亚洲综合| 国产精品成人无码免费| 小说区亚洲自拍另类| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲精品第五页中文字幕| 亚洲中文无码永久免费| 亚洲a∨无码一区二区| 免费国产成人午夜电影| 99re6在线视频精品免费| 91亚洲国产成人久久精品网站 | 国产免费AV片在线播放唯爱网| 亚洲人成网站免费播放| 亚洲日本一区二区三区在线不卡| a级男女仿爱免费视频| 911精品国产亚洲日本美国韩国| 无码人妻一区二区三区免费| 亚洲AV日韩AV永久无码色欲| 亚洲一区二区三区在线观看精品中文 | a级特黄毛片免费观看| 亚洲成在人线电影天堂色| 手机看片久久国产免费| 国产线视频精品免费观看视频| 7777久久亚洲中文字幕蜜桃| 国产精品无码免费视频二三区| 精品成人免费自拍视频| 亚洲色大成网站www久久九| 国产精品亚洲片在线观看不卡| 18国产精品白浆在线观看免费| 免费人成再在线观看网站|