简化Spring配置文件

开发 后端
本文介绍简化Spring配置文件,以及简化后的Spring配置文件的代码。

配置文件简化

我厌倦一切配置文件繁重的框架。
***的情况是,框架提供极端灵活复杂的配置方式,但只在你需要的时候。
 
Spring提供了三种可能来简化XML。随着国内用户水平的提高,这些基本的简化技巧大家都已掌握。

 

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就可以偷点懒了。

 

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

这太方便懒人了,想不到两个独立的XML节点都可以玩继承和派生,子节点拥有父节点的全部属性。***用的地方就是那个Transtion Proxy的定义。先定义一个又长又冗的父类,然后用子类去继承它。
  
另外,还有一个Inner Bean的机制,可以把DAO写成Proxy的内部类。为什么要写成内部类?为了让Proxy冒名顶替它去让Controller Autowire。(详见后面的示例)

 

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

简化后的Spring配置文件

1.Controller只剩下一句

  1. <bean name="customerController" class="org.springside.            bookstore.web.CustomerController" autowire="byName"/> 

2.DAO也只剩一句

  1. <bean id="customerDAO" class="org.springside.bookstore.dao.CustomerDao"/> 

3.Service类只剩下5行

  1. <bean id="customerManager" parent="baseTxService"> 
  2.        <property name="target"> 
  3.            <bean class="org.springside.bookstore.service.CustomerManager"/> 
  4.        </property> 
  5.    </bean> 

【编辑推荐】

  1. Spring2.0新特性点评
  2. Eclipse插件之Spring IDE
  3. Spring工作原理探秘
  4. 在Eclipse RCP中使用Spring框架
  5. Spring定时器的两种实现方式
责任编辑:佚名 来源: BlogJava
相关推荐

2011-04-12 09:53:32

Spring

2021-09-30 06:31:12

Spring Boot配置密码

2011-01-19 14:00:21

2011-01-13 16:27:26

Linux配置文件

2010-12-27 14:59:31

Outlook 配置文

2010-12-28 16:35:32

Outlook 配置文

2022-06-23 08:42:08

配置加密解密

2011-03-28 09:07:26

Nagios配置文件

2011-03-28 15:52:16

Nagios配置文件

2009-07-09 15:55:18

WebWork配置文件

2011-04-01 16:30:49

Nagios

2011-03-03 09:14:38

PureFTPd

2009-09-22 10:23:15

Hibernate配置

2011-01-21 15:08:45

Sendmail

2010-08-05 14:36:07

NFS服务

2010-05-05 16:14:09

Unix管理

2011-03-25 17:13:37

Nagios配置文件

2011-01-21 15:27:10

Sendmail

2011-02-25 16:39:34

proftpd配置文件

2009-11-17 16:46:01

PHP配置文件
点赞
收藏

51CTO技术栈公众号