为什么Groovy使Spring更出色,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
Spring Framework 为 Web 和企业应用程序提供了坚实的基础。通过支持 Groovy 等动态语言,Spring 添加了一些功能,从而使应用程序架构更加灵活、更具动态性。在包含 2 部分的系列文章 的***部分中,您将学习将 Groovy 集成到 Spring 应用程序的基础知识。
Spring 2.0 支持将动态语言集成到基于 Spring 的应用程序中。Spring 开箱即用地支持 Groovy、JRuby 和 BeanShell.以 Groovy、JRuby 或任何受支持的语言(当然包括 Java? 语言)编写的应用程序部分可以无缝地集成到 Spring 应用程序中。应用程序其他部分的代码不需要知道或关心单个 Spring bean 的实现语言。
Spring 支持动态语言意味着应用程序可以获得灵活性和动态性,并且没有任何附加条件。在本系列的第 1 部分中,您将看到如何将 Spring 和 Groovy 一起使用,以及这个强大集成如何为应用程序增加有趣的功能。例如,您可能需要频繁地更改小块的业务逻辑、应用程序发出的 e-mail 消息中包含的文本、应用程序生成的 PDF 格式和布局等。为了进行更改,传统的应用程序架构可能需要完全重新部署应用程序。Spring 支持 Groovy 之后,您可以这样更改一个已部署的应用程序,并使这些更改立即生效。我将讨论这一功能为应用程序所带来的好处,以及可能引发的问题。本文中所有例子的完整的源代码(参见 下载)都可以下载。
Spring 的动态语言支持
动态语言支持将 Spring 从一个以 Java 为中心的应用程序框架改变成一个以 JVM 为中心的应用程序框架。现在,Spring 不再只是让 Java 开发变得更容易。它还允许将以静态和动态语言编写的代码轻松地插入到 Spring 支持的分层架构方法中,从而使 JVM 的开发也变得更加容易。如果您已经熟悉 Spring,那么您会感到很舒服:可以利用 Spring 已经提供的所有特性 — 控制反转(IoC)和依赖项注入、面向方面编程(AOP)、声明式事务划分、Web 和数据访问框架集成、远程调用等 — 同时又可以使用灵活动态的语言,比如 Groovy.
Spring 通过 ScriptFactory 和 ScriptSource 接口支持动态语言集成。ScriptFactory 接口定义用于创建和配置脚本 Spring bean 的机制。理论上,所有在 JVM 上运行语言都受支持,因此可以选择特定的语言来创建自己的实现。ScriptSource 定义 Spring 如何访问实际的脚本源代码;例如,通过文件系统或 URL.Groovy 语言集成通过 ScriptFactory 的 GroovyScriptFactory 实现得到支持。
为什么是 Groovy?
根据官方的 Groovy 站点,Groovy 是 “用于 Java 虚拟机的一种敏捷的动态语言”,它 “以 Java 的强大功能为基础,同时又包含由 Python、Ruby 和 Smalltalk 等语言带来的强大附加功能”,例如动态类型转换、闭包和元编程(metaprogramming)支持(参见参考资料)。它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。我喜欢将它看作是没有讨厌代码,但又具有闭包和动态语言中的其他特性的 Java 语言。
Groovy 特别适合与 Spring 的动态语言支持一起使用,因为它是专门为 JVM 设计的,设计时充分考虑了 Java 集成,这使 Groovy 与 Java 代码的互操作很容易。它的类 Java 语法对于 Java 开发人员来说也很自然。
结束语
您已经看到了配置 Groovy 语言 bean 的一些不同的方式,以及在基于 Spring 的应用程序中使用它们是多么容易。您可以像使用 Java 类一样使用已编译的 Groovy 类。您还看到了配置用脚本编写的 Groovy 对象的一些不同的方式。应该选择的选项取决于如何在应用程序中使用 Groovy.还可以在同一个应用程序中结合使用已编译的和用脚本编写的 Groovy bean.实际上,如果希望的话,还可以在同一个应用程序中同时使用 Java、Groovy、JRuby 和 BeanShell bean,但我不建议这样做。作为开发人员,必须权衡在同一应用程序中使用多种语言的优点和缺点。
作为一种语言,Groovy 比 Java 更灵活,这使它成为很有吸引力的选择,即使仅选择编译 Groovy 类也是如此。Spring 可以集成用脚本编写的动态语言 bean,这使人们更加喜欢选择 Groovy,因为可以在用脚本编写的 bean 中引入附加的逻辑和灵活性。例如,正如前面看到的那样,可以根据业务逻辑添加确定应用程序启动时应该实例化的 bean 类型的逻辑。或者,可以将用脚本编写的对象部署到 .groovy 文件中,使 Web 应用程序的部署更加灵活。。groovy 文件位于应用程序的 CLASSPATH 中或文件系统中的某个地方,而不是打包在 WAR 文件中。
到目前为止,您看到的所有东西都为 Spring 工具箱增加了灵活性和威力。但是,Spring 动态语言支持中最引人注目的特性可能是在应用程序运行时 监视和检测对动态语言脚本的更改,并在 Spring 应用程序上下文中自动重新装载更改后的 bean.第 2 部分将深入探索这个功能。包含 bean 的静态配置在运行时不能更改,与之对比,这个功能提供了很大的灵活性。
关于为什么Groovy使Spring更出色问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。