`
yingfang05
  • 浏览: 120259 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Spring XML配置十二个最佳实践之二

阅读更多
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 XML配置十二个最佳实践

    Java EE设计模式:Spring企业级开发最佳实践

    Java EE 设计模式:Spring 企业级开发最佳实践 Java EE 设计模式是指在 Java 企业版(Java Enterprise Edition)中应用的设计模式,旨在提高软件系统的可维护性、可扩展性和可重用性。Spring 是当前最流行的 Java ...

    websevice,spring,cxg,ibatis

    CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)

    spring-boot-best-practices-sample:Spring Boot 2.x最佳实践样本

    Spring Boot 2.x 最佳实践专栏简介 1.1 为什么写这个专栏? Spring的出现简化了Java企业级应用的开发,凭着最初的IOC依赖注入容器和注解,以及灵活的对象依赖配置方式,经过多年的发展,已经成为功能丰富,生态完整的...

    精通spring--源代码

    包括忘却的Spring高级话题,Spring最佳实践  对Spring2.5内置的各种XML Schema支持进行了全方位阐述。包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本...

    精通Spring(书签)

    包括忘却的Spring高级话题,Spring最佳实践  对Spring2.5内置的各种XML Schema支持进行了全方位阐述。包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本...

    mybatis3.x源码深度解析与最佳实践.pdf

    MyBatis 3.x 源码深度解析与最佳实践 MyBatis 是当前最流行的 Java 持久层框架之一,其通过 XML 配置的方式消除了绝大部分 JDBC 重复代码以及参数的设置,结果集的映射。为了更好地学习和理解 MyBatis 背后的设计...

    精通Spring(书签版)

    包括忘却的Spring高级话题,Spring最佳实践  对Spring2.5内置的各种XML Schema支持进行了全方位阐述。包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本...

    精通Spring (书签版)

    包括忘却的Spring高级话题,Spring最佳实践  对Spring2.5内置的各种XML Schema支持进行了全方位阐述。包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本...

    java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存

    Spring Boot 是一个基于 Spring framework 的框架,它提供了各种开箱即用的插件,使得它成为了当今最为主流的 Java Web 开发框架之一。Spring Boot 的主要特点是它提供了自动配置特性,使得开发者可以快速搭建一个 ...

    spring.net中文手册在线版

    16.1.2. XML配置 16.1.3.管理连接字符串 第十七章. 使用ADO.NET进行数据访问 17.1.简介 17.2.动机 17.3.Provider抽象 17.3.1.创建IDbProvider类型的实例 17.4.命名空间 17.5.数据访问的方式 17.6.AdoTemplate简介 ...

    enterprise-spring-best-practices:企业Spring最佳实践

    企业Spring最佳实践 博客系列“ Enterprise Spring最佳...02 Spring XML配置 引导程序配置文件 SLF4J和Logback配置 Apache Commons(又名Jakarta Commons / JCL) Java Util(又名JUL) System.out和System.err 资源

    wsdl2java源码-spring-boot-cxf-integration-noxml:SpringBoot和CXF集成,无需xml配置

    服务正常工作所需的最少部分,因此我们尝试使其尽可能简单,但遵循最佳实践。 创建 Web 服务的步骤 创建 XSD 文件 考虑 Web 服务将接收和发送回的数据并设计 xsd 文件。 我发现将一个 xsd 用于“输入”参数,一个...

    一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目~

    最佳实践的项目结构、配置文件、精简的POM(查看项目结构图) 统一响应结果及生成工具 统一异常处理 简单的接口签名认证 使用基础方法抽象封装 使用Druid Spring Boot Starter集成Druid数据库连接池与监控 使用...

    SpringMVC-SpringSecurity-MySql-Hibernate

    将Dispatcher Servlet与web.xml一起设置的最佳实践。 配置Spring Security并创建经过身份验证的页面,例如“登录”页面和“管理页面” 。 用于在具有授权角色的数据库上创建安全用户的安全上下文集成。 (本教程...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

    jaxrs-sample:用于最佳 REST 实践的基于 REST JAX-RS CXF 的示例脚手架

    REST JAX-RS CXF Spring 最佳实践模板。 描述 从非持久内存数据存储中添加、检索和删除存储的示例应用程序。 PUT - 使用客户端提供的 ID 添加或更新存储 GET - 获取商店 DELETE - 删除存储 特征 多模块maven项目 ...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...

    Spring Boot & MyBatis种子项目,用于快速构建中小型API、RESTful API项目

    - 最佳实践的项目结构、配置文件、精简的POM([查看项目结构图] - 统一响应结果封装及生成工具 - 统一异常处理 - 简单的接口签名认证 - 常用基础方法抽象封装 - 使用Druid Spring Boot Starter 集成Druid数据库连接...

    基于springboot的网上购物商城系统研发.zip

    "基于springboot的网上购物商城系统研发.zip"是一个针对开发网上购物商城系统的项目压缩包。该项目使用Spring Boot框架,这是一...同时,它也适合用作教学材料,帮助学生或初学者了解现代Web应用的开发流程和最佳实践。

Global site tag (gtag.js) - Google Analytics