7. 利用id作为bean的标识符
你可以指定一个id或名称来作为bean的标识符。虽然使用id不会提高易读性,但是它可以让XML parser对bean的引用有效方面进行更好的验证。如果由于XML IDREF的限制而不能使用某个id,你可以利用names来作为bean的标识符。XML IDREF的限制是id必须以字母开头(或者在XML规范中定义的标点符号),后面接着字母,数字,连字号,下划线,冒号等。实际上,遇到XML IDREF限制的问题是很少见的。
8. 在开发阶段使用依赖检验
你可以在bean中给依赖检验的属性设置值,而不采用原先默认的空值,属性设置例如simple,object或all,以便容器进行依赖检验。当bean的全部的属性(或某类属性)需要被明确设置或自动绑定时,依赖检验便显得很有用。
<bean id="orderService" class="com.lizjason.spring.OrderService" dependency-check="objects">
<property name="companyName" value="lizjason"/>
<constructor-arg ref="orderDAO"/>
</bean>
在这个例子里,容器确保为orderService bean设置的属性不是primitives 或者 collections。为所有的bean设置默认依赖检测也是可以的,但是我们很少这样做,是因为有些bean的属性根本就不必设置。
9. 为每个配置文件加上一个header comment
最好使用descriptive id和名称来代替在XML配置文件中的注释。此外,加上一个配置文件header也很有用处,它可以概述文件中所定义的bean。你可以选择将描述内容加入description标签中。例如:
<beans>
<description>
This file defines billing service related beans and it depends on baseServices.xml,which provides service bean templates...
</description>
...
</beans>
使用description标签的一个好处是可以容易地利用工具从标签中选取出description(的内容)。
10. 对于任何变化,要与队友积极交流
当你重构Java代码时,你需要随时更新配置文件并且通知队友。XML配置文件也是代码,它们是应用程序的至关重要的部分,但是它们难于阅读和维护。大部分时间你既要阅读XML配置文件又要阅读运行中的Java代码。
11. Setter injection优于constructor injection
Spring提供3种类型的依赖注入: constructor injection,setter injection, 和method injection。我们一般只用前两种类型。
<bean id="orderService" class="com.lizjason.spring.OrderService">
<constructor-arg ref="orderDAO"/>
</bean>
<bean id="billingService" class="com.lizjason.spring.BillingService">
<property name="billingDAO" ref="billingDAO">
</bean>
这个例子中,orderService类使用的是constructor injection,而BillingService类使用的是setter injection。constructor injection可以确保bean不会在一个非法状态下被创建,但是setter injection更加灵活并且更易管理,尤其当类存在很多属性并且其中一些是可选的情况下。
12. 不要滥用依赖注入
作为最后一点,Spring ApplicationContext可以替你创建Java对象,但是并不是所有的Java对象都通过依赖注入来创建的。例如,全局的对象不应该通过ApplicationContext来创建。Spring是一个很棒的框架,但是,就易读性和易管理性而言,当定义大量bean的时候,基于XML的配置问题就会突出。过度的依赖注入会使XML配置变得复杂而且臃肿。记住!使用强大的IDE时,例如Eclipse和IntelliJ,与XML文件相比,Java代码更加易读,易维护,易管理。
总结
对于Spring的配置,XML是很优秀的方式。但当定义大量bean时,基于XML配置会变得冗长,笨拙。Spring提供了丰富的配置选项。适当地利用其中的选项可以使XML配置清晰,但是,有些选项,例如autowiring(自动绑定),往往会降低易读性和易维护性。文章中所列举的实例,可以帮助你创建出清晰易读的XML配置文件。
分享到:
相关推荐
### Spring XML配置十二个最佳实践 #### 一、利用自动装配简化配置 在Spring框架中,自动装配(Autowiring)是一种非常实用的功能,它能够帮助我们减少对Bean依赖关系的手动配置工作量。通过设置`autowire`属性,...
本文将详细介绍关于Spring XML配置文件的12个最佳实践,这些实践不仅有助于提高配置文件的可读性和可维护性,还能帮助开发者更好地理解和使用Spring框架。 #### 最佳实践 1. **避免使用自动绑定(Autowiring)** ...
本文将详细解析Spring中XML配置文件的十二个最佳实践,主要关注前六个方法。 1. **避免使用自动绑定(Autowiring)** Spring的自动绑定功能允许框架通过类的自省自动注入依赖。虽然可以减少手动配置,但会导致配置...
《Spring 2.0 核心技术与最佳实践》是由知名IT教育家廖雪峰编写的教程,旨在为从初学者到高级工程师提供全面而深入的Spring 2.0框架理解与应用指导。Spring框架是Java开发中的核心工具,尤其在企业级应用中广泛使用...
本实践指南将深入探讨Spring配置的最佳实践,旨在帮助开发者优化代码,提高应用的可维护性和可扩展性。 一、XML配置与Java配置的选择 Spring最初是以XML配置为主,但随着版本的更新,Java配置逐渐成为首选。Java...
本文主要探讨了Spring XML配置文件的六个最佳实践,旨在提升代码的可读性、可维护性以及整体项目的结构。以下是这六个方法的详细说明: 1. 避免使用自动绑定(autowiring) 自动绑定允许Spring通过bean类的自省来...
### Spring中XML配置的12个技巧 #### 1. 避免使用自动装配 在Spring框架中,自动装配(auto-wiring)是一种强大的功能,它允许开发者通过元数据(如bean类的自省)自动装配bean之间的依赖关系,从而避免在XML配置...
总结,Spring全注解项目示例展示了如何在不使用web.xml的情况下,利用Java注解进行Spring应用的配置,这是现代Spring开发的最佳实践之一。通过深入学习和实践,开发者可以提升对Spring框架的理解,提高开发效率。
该项目为Spring Cloud Alibaba框架下的Spring Cloud最佳实践设计源码,包含178个文件,涵盖113个Java源文件、37个XML配置文件、18个VM模板文件、6个YAML配置文件、3个备份文件和1个SQL脚本文件,旨在展示代码的艺术...
6. **最佳实践**:在实际开发中,为了保持代码整洁,通常会将不同层次的配置分开,如将Spring的bean定义放在`applicationContext.xml`,SpringMVC的配置放在`servlet-context.xml`,Mybatis的配置放在`mybatis-...
Java EE 设计模式:Spring 企业级开发最佳实践 Java EE 设计模式是指在 Java 企业版(Java Enterprise Edition)中应用的设计模式,旨在提高软件系统的可维护性、可扩展性和可重用性。Spring 是当前最流行的 Java ...
创建一个名为`org.springframework.boot.autoconfigure.EnableAutoConfiguration`的键,并将你的XML配置文件对应的`Configuration`类名作为值添加进去。 3. **自定义BeanDefinitionReader** 你可以创建一个自定义...
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
《Spring 2.0核心技术最佳实践源代码》是关于Spring框架深入学习的重要参考资料,尤其针对Spring 2.0版本的核心特性进行了详细的解析和实践。在第十章中,我们将会探讨以下几个关键知识点: 1. **AOP(面向切面编程...
2. **声明式事务管理**:Spring2.0提供了一种声明式事务管理方式,通过配置元数据(XML或注解),开发者可以轻松地管理事务,而无需编写大量的事务控制代码。 3. **JSR-250支持**:Spring2.0引入了对JSR-250规范的...
《Hibernate 3.5与Spring 2.5.5整合的最佳实践》 在现代Java企业级应用开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,与Spring框架的结合使用是常见的做法。本篇将深入探讨如何将Hibernate 3.5与Spring...
Spring Boot 2.x 最佳实践专栏简介 1.1 为什么写这个专栏? Spring的出现简化了Java企业级应用的开发,凭着最初的IOC依赖注入容器和注解,以及灵活的对象依赖配置方式,经过多年的发展,已经成为功能丰富,生态完整的...
Struts2.1、Spring3.0和Hibernate3.3的整合是企业级Java应用开发中常见的技术组合,它们能够实现MVC(Model-View-...整个过程涉及到的配置和代码编写都需要遵循最佳实践,以保证代码的清晰性和项目的可扩展性。
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。
1. **XML配置**:传统的Spring配置通常使用XML文件,如`beans.xml`,其中包含了Bean的定义,包括类名、初始化方法、属性等。例如: ```xml <value>constructorValue ``` 2. **注解配置**:随着Java...