Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dk131072
spring-framework
提交
fc9d1760
S
spring-framework
项目概览
dk131072
/
spring-framework
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fc9d1760
编写于
12月 17, 2018
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revised c-namespace example
Issue: SPR-17601
上级
aab42116
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
19 deletion
+23
-19
src/docs/asciidoc/core/core-beans.adoc
src/docs/asciidoc/core/core-beans.adoc
+23
-19
未找到文件。
src/docs/asciidoc/core/core-beans.adoc
浏览文件 @
fc9d1760
...
@@ -927,14 +927,14 @@ element.
...
@@ -927,14 +927,14 @@ element.
[
subs
=
"verbatim,quotes"
]
[
subs
=
"verbatim,quotes"
]
----
----
<
beans
>
<
beans
>
<
bean
id
=
"
thing
One"
class
=
"x.y.ThingOne"
>
<
bean
id
=
"
bean
One"
class
=
"x.y.ThingOne"
>
<
constructor
-
arg
ref
=
"
thing
Two"
/>
<
constructor
-
arg
ref
=
"
bean
Two"
/>
<
constructor
-
arg
ref
=
"
thing
Three"
/>
<
constructor
-
arg
ref
=
"
bean
Three"
/>
</
bean
>
</
bean
>
<
bean
id
=
"
thing
Two"
class
=
"x.y.ThingTwo"
/>
<
bean
id
=
"
bean
Two"
class
=
"x.y.ThingTwo"
/>
<
bean
id
=
"
thing
Three"
class
=
"x.y.ThingThree"
/>
<
bean
id
=
"
bean
Three"
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
...
@@ -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="
thing
One" class="x.y.ThingOne">
<bean id="
bean
One" class="x.y.ThingOne">
<constructor-arg
ref="thing
Two"/>
<constructor-arg
name="thingTwo" ref="bean
Two"/>
<constructor-arg
ref="thing
Three"/>
<constructor-arg
name="thingThree" ref="bean
Three"/>
<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:
...
@@ -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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录