Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SpringbeanXML初始化自定义内部对象_Java_Spring_Spring Bean - Fatal编程技术网

Java 使用SpringbeanXML初始化自定义内部对象

Java 使用SpringbeanXML初始化自定义内部对象,java,spring,spring-bean,Java,Spring,Spring Bean,我有这样的课: Class Food int type String name Class Dog String dogName Food food 我想使用Spring属性初始化Dog类,通过这样做初始化dogName值没有问题: <bean id="dog" class="....Dog"> <property name="dogName" value="dog"/> ... </bean> ... 如何为食物对象

我有这样的课:

Class Food
  int type
  String name

Class Dog
   String dogName
   Food food
我想使用Spring属性初始化
Dog
类,通过这样做初始化
dogName
值没有问题:

<bean id="dog" class="....Dog"> 

 <property name="dogName" value="dog"/> 

...

</bean>

...

如何为
食物
对象设置值?

使用
中的
ref
引用食物的bean id

<bean id="food" class="....Food"> 

</bean>

<bean id="dog" class="....Dog"> 
    <property name="dogName" value="dog"/> 
    <property name="food" ref="food"/> 
</bean>
    <bean id="food" class="....Food"></bean>

    <bean id="dog" class="....Dog"> 
        <property name="dogName" value="dog"/> 
        <property name="food" ref="food"/> 
    </bean>

     <bean id="dog" class="c...dog">
        <property name="dogName" value="dog"/> 
        <property name="food" >
            <bean  class="...food">
               <property name="type" value="1"/> 
               <property name="name" value="chicken"/> 
            </bean>
        </property>
     </bean>


见Spring:

或元素中的元素用于定义所谓的内部bean。内部bean定义不需要定义任何id或name,最好不要指定任何id或name值,因为id或name值将被容器忽略

<bean id="outer" class="...">
  <!-- instead of using a reference to a target bean, simply define the target bean inline -->
  <property name="target">
    <bean class="com.example.Person"> <!-- this is the inner bean -->
      <property name="name" value="Fiona Apple"/>
      <property name="age" value="25"/>
    </bean>
  </property>
</bean>


使用中的ref引用食物的bean id

<bean id="food" class="....Food"> 

</bean>

<bean id="dog" class="....Dog"> 
    <property name="dogName" value="dog"/> 
    <property name="food" ref="food"/> 
</bean>
    <bean id="food" class="....Food"></bean>

    <bean id="dog" class="....Dog"> 
        <property name="dogName" value="dog"/> 
        <property name="food" ref="food"/> 
    </bean>

     <bean id="dog" class="c...dog">
        <property name="dogName" value="dog"/> 
        <property name="food" >
            <bean  class="...food">
               <property name="type" value="1"/> 
               <property name="name" value="chicken"/> 
            </bean>
        </property>
     </bean>

如果是内部的,但不能在父bean标记之外使用它

 <bean id="dog" class="c...dog">
    <property name="dogName" value="dog"/> 
    <property name="food" >
        <bean  class="...food">
           <property name="type" value="1"/> 
           <property name="name" value="chicken"/> 
      </bean>
    </property>
</bean>