parent
aab421167b
commit
fc9d1760be
|
@ -927,14 +927,14 @@ element.
|
||||||
[subs="verbatim,quotes"]
|
[subs="verbatim,quotes"]
|
||||||
----
|
----
|
||||||
<beans>
|
<beans>
|
||||||
<bean id="thingOne" class="x.y.ThingOne">
|
<bean id="beanOne" class="x.y.ThingOne">
|
||||||
<constructor-arg ref="thingTwo"/>
|
<constructor-arg ref="beanTwo"/>
|
||||||
<constructor-arg ref="thingThree"/>
|
<constructor-arg ref="beanThree"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="thingTwo" class="x.y.ThingTwo"/>
|
<bean id="beanTwo" class="x.y.ThingTwo"/>
|
||||||
|
|
||||||
<bean id="thingThree" class="x.y.ThingThree"/>
|
<bean id="beanThree" class="x.y.ThingThree"/>
|
||||||
</beans>
|
</beans>
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
@ -1937,27 +1937,28 @@ The following example uses the `c:` namespace to do the same thing as the from
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="thingOne" class="x.y.ThingTwo"/>
|
<bean id="beanTwo" class="x.y.ThingTwo"/>
|
||||||
<bean id="thingTwo" class="x.y.ThingThree"/>
|
<bean id="beanThree" class="x.y.ThingThree"/>
|
||||||
|
|
||||||
<!-- traditional declaration -->
|
<!-- traditional declaration with optional argument names -->
|
||||||
<bean id="thingOne" class="x.y.ThingOne">
|
<bean id="beanOne" class="x.y.ThingOne">
|
||||||
<constructor-arg ref="thingTwo"/>
|
<constructor-arg name="thingTwo" ref="beanTwo"/>
|
||||||
<constructor-arg ref="thingThree"/>
|
<constructor-arg name="thingThree" ref="beanThree"/>
|
||||||
<constructor-arg value="something@somewhere.com"/>
|
<constructor-arg name="email" value="something@somewhere.com"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- c-namespace declaration -->
|
<!-- c-namespace declaration with argument names -->
|
||||||
<bean id="thingOne" class="x.y.ThingOne" c:thingTwo-ref="thingTwo" c:thingThree-ref="thingThree" c:email="something@somewhere.com"/>
|
<bean id="beanOne" class="x.y.ThingOne" c:thingTwo-ref="beanTwo"
|
||||||
|
c:thingThree-ref="beanThree" c:email="something@somewhere.com"/>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
The `c:` namespace uses the same conventions as the `p:` one (a trailing `-ref` for bean
|
The `c:` namespace uses the same conventions as the `p:` one (a trailing `-ref` for
|
||||||
references) for setting the constructor arguments by their names. Similarly, it
|
bean references) for setting the constructor arguments by their names. Similarly,
|
||||||
needs to be declared even though it is not defined in an XSD schema (it exists
|
it needs to be declared in the XML file even though it is not defined in an XSD schema
|
||||||
inside the Spring core).
|
(it exists inside the Spring core).
|
||||||
|
|
||||||
For the rare cases where the constructor argument names are not available (usually if
|
For the rare cases where the constructor argument names are not available (usually if
|
||||||
the bytecode was compiled without debugging information), you can use fallback to the
|
the bytecode was compiled without debugging information), you can use fallback to the
|
||||||
|
@ -1968,12 +1969,15 @@ argument indexes, as follows:
|
||||||
[subs="verbatim,quotes"]
|
[subs="verbatim,quotes"]
|
||||||
----
|
----
|
||||||
<!-- c-namespace index declaration -->
|
<!-- c-namespace index declaration -->
|
||||||
<bean id="thingOne" class="x.y.ThingOne" c:_0-ref="thingTwo" c:_1-ref="thingThree"/>
|
<bean id="beanOne" class="x.y.ThingOne" c:_0-ref="beanTwo" c:_1-ref="beanThree"
|
||||||
|
c:_2="something@somewhere.com"/>
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
NOTE: Due to the XML grammar, the index notation requires the presence of the leading `_`,
|
NOTE: Due to the XML grammar, the index notation requires the presence of the leading `_`,
|
||||||
as XML attribute names cannot start with a number (even though some IDEs allow it).
|
as XML attribute names cannot start with a number (even though some IDEs allow it).
|
||||||
|
A corresponding index notation is also available for `<constructor-arg>` elements but
|
||||||
|
not commonly used since the plain order of declaration is usually sufficient there.
|
||||||
|
|
||||||
In practice, the constructor resolution
|
In practice, the constructor resolution
|
||||||
<<beans-factory-ctor-arguments-resolution,mechanism>> is quite efficient in matching
|
<<beans-factory-ctor-arguments-resolution,mechanism>> is quite efficient in matching
|
||||||
|
|
Loading…
Reference in New Issue