【问题标题】:Resources on using annotations in Java/Spring在 Java/Spring 中使用注解的资源
【发布时间】:2012-05-29 17:16:03
【问题描述】:

有两种使用 Spring 的方法(注解/XML)。在 XML 中,我们在 XML 文件中指定所有内容。在注解中,我们使用<context:component-scan base-package="com.xyz" /> <aop:aspectj-autoproxy /> 等命令。因此,在注解中,可以对包进行完整扫描以识别依赖关系等。所以作为初学者,我想知道它对我们应用程序的整体影响。

编辑 请不要为 Spring 的初始化而争吵。这是一个普遍的问题。你也可以举一个 Hibernate 的例子。 Struts 或其他任何东西。

错过了 Java 配置。也是这样。

【问题讨论】:

  • "有两种使用 Spring (Annotations/XML) 的方法" -> 实际上有 3 种 - 从 Spring 3.0 开始,您也可以使用 Java 来配置您的容器。
  • XML-based 与 Spring 中的 Annotation-based 配置是有争议的硬币的两个方面!随着应用程序变得越来越大,XML 往往会变得混乱和笨拙。显然,它不能完全避免,因为它是实例化 Spring 上下文的基础。话虽如此,XML 仍然使整个应用程序具有可读性,而注释使源代码更具可读性。实际上,两者在对应用程序的“影响”方面是等效的。
  • Web 用户对 xml 配置“[未] 完全避免”不正确;您可以实例化没有 XML 的 spring 上下文。参见例如thebinaryidiot.com/archives/2012/04/05/simple-spring-mvc-part-1
  • @WebUser 您可以完全基于 Java 配置创建应用程序上下文,请参阅 Spring 参考文档中的Java-based container configuration
  • @matsev 和 rhollencamp,你们都是对的。我最近读到它,忘记包括在内。谢谢指正!

标签: java xml spring annotations


【解决方案1】:

据我所知,两种模式的良好混合将导致良好的应用程序。

XML - 随着它变得越来越冗长和难以维护。

注释 - 将使代码更易于阅读。好吧,您可以通过在 xml 中配置来严格维护包级别的扫描,因此它不会影响您的应用程序。

由于 xml 对于初始 spring 实例化是强制性的,因此您无法避免这种情况。所以理想情况下,混合起来会是一件很棒的事情。

【讨论】:

    【解决方案2】:

    我同意 raddykrish。

    我也相信注释和 xml 配置的混合是最佳实践。

    您可以将 Spring 配置分为两类。

    1. 使用任何 Spring 模块或其他第三方工具与 Spring 集成所需的一次性配置。

    2. 您需要创建的 bean 才能使它们注入。

    使用 Spring Security、语言环境解析器、视图解析器等的配置属于第一类。您最好将它们放在 xml 中,以便更好地管理您的配置。

    您的应用程序的控制器、服务、dao 等的 bean 应该被注释并让它们被 Spring 扫描。因为在一个大型应用程序中为它们中的每一个单独制作 xml bean 是非常繁琐的过程。它看起来很丑,而且很难管理。

    希望对你有所帮助。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 2014-08-20
      • 2015-08-05
      相关资源
      最近更新 更多