论坛首页 Java企业应用论坛

Spring 1.2下XML配置文件语法的小简化

浏览 5484 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-13  
最主要是属性值从子节点变回属性,对不喜欢autowire的兄弟比较有用。
当然,如果value要CDATA的时候还是要用子节点。

1.<property name="foo">
       <value>fooValue</value>
    </property>
    简化为
    <property name="foo" value="fooValue"/>

2.<property name="foo">
       <ref bean="fooBean">
    </property>
    简化为
    <property name="foo" ref="fooBean"/>

3. list如果只有一个值时,可以直接用value表示
   <property name="tables">
    <list>
       <value>Alef</value>
     </list>
    </property>
    简化为
    <property name="tables" value="Alef"/>
   发表时间:2005-07-13  
第一、二没问题
第三个怎么看起来那么别扭
0 请登录后投票
   发表时间:2005-07-14  
第三个是很怪,容易把value当成list
0 请登录后投票
   发表时间:2005-07-14  
引用
1.<property name="foo">
<value>fooValue</value>
</property>
简化为
<property name="foo" value="fooValue"/>

2.<property name="foo">
<ref bean="fooBean">
</property>
简化为
<property name="foo" value="fooBean"/>


我个人觉得简化后可读性不好了,有奇异了......
特别是第三种...

不过还是很感谢楼主,为减少代码做出了不可磨灭的贡献...
0 请登录后投票
   发表时间:2005-07-14  
根据spring的文档应该如下配置:
<property name="myProperty">
  <ref bean="myBean">
</property
<constructor-arg>
  <ref bean="myBean">
</constructor-arg>
are equivalent to:

<property name="myProperty" ref="myBean"/>
<constructor-arg ref="myBean"/>
0 请登录后投票
   发表时间:2005-07-14  
charon 写道
第一、二没问题
第三个怎么看起来那么别扭


不奇怪啊,Spring这是允许选用list 或者value来表示, 比如拦截器,可能有一个,也可能有多个,多数情况下只有一个。这时没必要强制使用list来表示了。

就像
getHibernateTemplate().query("from Foo foo where fooColumn=?", fooValue);

只有一个参数的时候直接写就行了,没必要也强制数组的形式:
getHibernateTemplate().query(sql,new Object[]{fooValue});
0 请登录后投票
   发表时间:2005-08-03  
xhxasdf 写道
<property name="tables">
<list>
<value>Alef</value>
</list>
</property>
简化为
<property name="tables" value="Alef"/>



这个你都没有申明是list的,编译器怎么知道这个value是list的值??


编译时需要spring配置文件么?不需要么?需要么?不需要么?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics