商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

简化Spring--配置文件

作者:江南白衣  2006-11-04

IT168技术文档】 
    I-配置文件简化 
    Spring提供了三种可能来简化XML。随着国内用户水平的提高,这些基本的简化技巧大家都已掌握大家可以直接看第3,第4点--Spring 1.2, Spring 2.0的后继改进。 

    1.1.autowire="byName" /"byType" 

    假设Controller有一个属性名为customerDAO,Spring就会在配置文件里查找有没有名字为CustomerDAO的bean, 自动为Controller注入。
 
    如果bean有两个属性,一个想默认注入,一个想自定义,只要设定了autowire,然后显式的声明那个想自定义的,就可以达到要求。这就应了需求,在需要特别配置的时候就提供配置,否则给我一个默认注入。 

    还有一个更懒的地方,在最最根部的<beans>节点写一句default-autovwrie="byName",可以让文件里的所有bean 都默认autowrie。 

    不过Rod认为开发期可以这样,但Production Server上不应该使用Autowire。而我觉得那些自定义一次的地方比如TranscationManager应该详细定义,而Dao,Controller这种大量重复定义的bean就可以偷点懒了。 

    1.2.<bean>节点之间抽象公共定义和 Inner Bean 

    这太方便懒人了,想不到两个独立的XML节点都可以玩继承和派生,子节点拥有父节点的全部属性。
最好用的地方就是那个Transtion Proxy的定义。先定义一个又长又冗的父类,然后用子类去继承它。 

    另外,还有一个Inner Bean的机制,可以把DAO写成Proxy的内部类。为什么要写成内部类?为了让Proxy冒名顶替它去让Controller Autowire。(详见后面的示例) 

    1.3. 宽松的配置, To XML or Not to XML 
    据说Spring比Struts的配置宽松了很多,这就给人把东西从配置文件中撤回原码中的机会。
不赞成什么都往配置文件里晒,造成了Rich Information的配置文件,修改或者查看的时候,要同时打开配置文件和原码才能清楚一切。 
    而我希望配置文件就集中做一些整体的配置,还有框架必须的、无需管理的冗余代码。而一些细节的变化不大的配置和逻辑,就尽量别往里塞了。因此,Success/Fail View 的配置,不建议放在里面。 

    2.简化后的配置文件 

    1.Controller只剩下一句
<bean name="customerController"
class="org.springside.bookstore.web.CustomerController" autowire="byName"/>
     2.DAO也只剩一句 
<bean id="customerDAO" class="org.springside.bookstore.dao.CustomerDao"/>
    3.Service类只剩下5行
<bean id="customerManager" parent="baseTxService"> <property name="target"> <bean class="org.springside.bookstore.service.CustomerManager"/> </property> </bean>
    3.Spring 1.2后xml语法简化 

    最主要的简化是把属性值和引用bean从子节点变回了属性值,对不喜欢autowire的兄弟比较有用。当然,如果value要CDATA的时候还是要用子节点。另外,list的值可以用空格隔开也比较实用。 

    1.属性值
<property name="foo"> <value>fooValue</value> </property>
    简化为
<property name="foo" value="fooValue"/>
    2.引用 bean
<property name="foo"> <ref bean="fooBean"> </property>
    简化为
<property name="foo" ref="fooBean"/>
    3. list可以简化为空格分开的字符串
<property name="myFriendList"> <list> <value>gigix</value> <value>wuyu</value> </list> </property>
    简化为
<property name="myFriendList" value="gigix wuyu"/>
1 2
【内容导航】
第1页: 配置文件简化 第2页: Spring 2.0来了
©版权所有。未经许可,不得转载。
[责任编辑:郭宗一]