当你重构Java代码时,你需要随时更新配置文件并且通知队友。XML配置文件也是代码,它们是应用程序的至关重要的部分,但是它们难于阅读和维护。大部分时间你既要阅读XML配置文件又要阅读运行中的Java代码。
11.Setterinjection优于constructorinjection
Spring提供3种类型的依赖注入:constructorinjection,setterinjection,和methodinjection。我们一般只用前两种类型。
class="com.lizjason.spring.OrderService">
class="com.lizjason.spring.BillingService">
这个例子中,orderService类使用的是constructorinjection,而BillingService类使用的是setterinjection。constructorinjection可以确保bean不会在一个非法状态下被创建,但是setterinjection更加灵活并且更易管理,尤其当类存在很多属性并且其中一些是可选的情况下。
12.不要滥用依赖注入
作为最后一点,SpringApplicationContext可以替你创建Java对象,但是并不是所有的Java对象都通过依赖注入来创建的。例如,全局的对象不应该通过ApplicationContext来创建。Spring是一个很棒的框架,但是,就易读性和易管理性而言,当定义大量bean的时候,基于XML的配置问题就会突出。过度的依赖注入会使XML配置变得复杂而且臃肿。记住!使用强大的IDE时,例如Eclipse和IntelliJ,与XML文件相比,Java代码更加易读,易维护,易管理。
总结
对于Spring的配置,XML是很优秀的方式。但当定义大量bean时,基于XML配置会变得冗长,笨拙。Spring提供了丰富的配置选项。适当地利用其中的选项可以使XML配置清晰,但是,有些选项,例如autowiring(自动绑定),往往会降低易读性和易维护性。文章中所列举的实例,可以帮助你创建出清晰易读的XML配置文件。(

