`

groovy编写springmvc controller service的几点注意事项

阅读更多

做项目过程中,有时用户需要很快添加一些小的功能,然而程序开发编译部署重启,需要时间,而且有时还不方便重启应用,如果groovy能够编写spring 组件动态加载就好了。查了资料,spring框架提供了支持,但是很有限。其中我收藏的这个帖子研究比较深入仔细,帮助比较大。

Spring动态部署Bean/Controller/Groovy Controller

帖子中提供的是单个groovy类的加载方法,我改版为配置目录的方式。同时在调试中发现了其他一些问题。

1、spring配置中的资源路径并加载groovy类,与根据资源路径判断资源修改时间的资源获取方式不一致,spring content一样的资源加载器,获取不到资源。因为代码中保存了groovy类的文件系统全路径,所以需要用文件系统资源类加载文件,获取修改时间属性。

2、groovy类中不能用注解的方式自动注册,上面的类加载方式加载的其他groovy类。各种测试,都显示依赖的groovy类已经加载bean,而且类名称跟代码要求的一致,但是spring 根据类型就是找不到匹配的类。将依赖groovy类添加继承接口,按照接口注入,成功。但是此接口必须是java类编写或groovy预编译的类,动态加载的groovy编写的接口,同样不能成功。

 

      总结:groovy全套实现springmvc 组件还是有很多限制,尽量当做胶水,进行功能组合实现某些需求。

 

分享到:
评论

相关推荐

    ttpod-rest:基于Groovy + SpringMVC 的一套Rest JSON API

    概述用Groovy编写您的控制器 @Restclass MyController extends ControllerSupport7 { def hello ( HttpServletRequest req ) { [ code : 1 , data : " Hello, ${ req['name'] } ! " ] }} 打开 { " code " : 1 , " ...

    groovy编写webservice服务端和客户端(含连接数据并输出JSON数据)

    标题中的“groovy编写webservice服务端和客户端(含连接数据并输出JSON数据)”表明了本文将探讨如何使用Groovy编程语言来构建Web服务的服务器端和客户端,并且这些服务会涉及与数据库的交互以及JSON数据的处理。...

    groovy脚本实现对数据库的增删改查

    在IT行业中,Groovy常被用于快速开发、脚本编写以及自动化任务,尤其在处理数据库操作时,其简洁的语法使得数据库的增删改查(CRUD)变得更加高效。 在“groovy脚本实现对数据库的增删改查”这个主题中,我们将深入...

    JUN SpringBoot API Service 是一个基于SpringBoot+Groovy+SQL动态生成API

    JUN SpringBoot API Service 是一个基于SpringBoot+Groovy+SQL动态生成API并动态发布,且发布后可动态执行groovy脚本及SQL脚本的API服务项目。提供在线执行动态程序脚热加载本及动态生成API并执行的功能。支持动态...

    springMVC Spring mybatis swagger demo

    5. **Gradle**:Gradle使用Groovy语言编写构建脚本,支持多项目构建,具有强大的插件生态。它可以方便地管理项目依赖,自动化构建过程,包括编译、测试、打包等任务。 在这个示例项目中,`ssm-swagger`可能包含以下...

    groovy

    Groovy结合了Java的静态类型系统和Python、Ruby等动态语言的灵活性,使得开发者可以更加高效地编写代码。本篇文章将深入探讨Groovy语言的关键特性和应用场景。 一、Groovy简介 Groovy是2003年由James Strachan创建...

    SpringBoot-Gradle-Maven-Java-Groovy

    这篇详细的知识点解析将深入探讨这些技术及其相互关系。 1. **SpringBoot**: SpringBoot是Spring框架的一个模块,旨在简化Spring应用的初始搭建以及开发过程。它提供了一种快速构建可运行的应用程序的方式,内置了...

    groovy in action 中文版 2017.11

    Groovy是完全兼容Java的,这意味着Java开发人员可以轻松地使用Groovy编写程序,并利用Groovy提供的强大功能简化开发流程。 Groovy能够为脚本编写人员提供一种更直接、更易于表达的编程方式。脚本编写人员可以使用...

    groovy-all

    Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在脚本编写、Web开发、自动化测试等领域有着广泛的应用。 标题“groovy-all”暗示这是一个包含Groovy完整实现的库,通常...

    Java调用Groovy,实时动态加载数据库groovy脚本

    我们可以编写一个Java方法,从MongoDB中查询到Groovy脚本,然后利用上述的Groovy调用机制执行这些脚本。 例如,我们可能会有一个MongoDB集合,其中每个文档包含一个字段存储Groovy脚本。Java代码会连接到MongoDB,...

    groovy-all-2.4.8.jar

    - 可以编写Groovy脚本文件(`.groovy`),然后通过GroovyShell或GroovyScriptEngine来运行。 - 对于构建工具,如Maven或Gradle,可以通过配置依赖项来使用这个版本的Groovy。 5. **Groovy的应用场景** - **脚本...

    apache-groovy-sdk-3.0.6.zip

    Groovy是一种基于Java平台的、动态的、强大的编程语言,它融合了面向对象编程、函数式编程和静态类型检查的能力,为开发者提供了简洁、高效的语法,使得编写Java虚拟机(JVM)上的应用程序变得更加容易和快捷。...

    groovy-2.3.6-installer

    安装Groovy后,开发者可以使用Groovy Shell(groovysh)进行交互式编程,或者编写Groovy脚本执行任务。Groovy的语法简洁明了,支持闭包和动态类型,使得开发效率大大提高。此外,Groovy还可以用于构建脚本、Web开发...

    GroovyAction:通过 groovy 编写动作

    GroovyAction这个项目还是2010年,考研复习放松的时候突发奇想开始的,想用groovy替代SSH中的action层(其实service,module什么的都可以)主要也是那段时间动态语言风头比较劲,还有就是groovy的语法糖,不像java那么...

    Groovy Script 入门

    ### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向对象的编程语言,它运行在Java平台上。由于其语法简洁且与Java高度兼容,因此对于Java开发者来说非常容易上手。Groovy不仅支持...

    groovy-sdk-4.0.3

    Groovy SDK 4.0.3 是一个针对Groovy编程语言的软件开发工具包,它包含了Groovy语言的运行环境和开发所需的各种组件。Groovy是一种动态、灵活的面向对象编程语言,它与Java语法兼容,但提供了更简洁的语法和更强的...

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy入门经典,groovyeclipse 插件

    这使得Groovy成为快速开发、脚本编写以及构建自动化等任务的理想选择。 GroovyEclipse是一款强大的Eclipse插件,专门为Groovy开发者设计。它为Eclipse IDE带来了对Groovy语言的全面支持,包括语法高亮、代码提示、...

    某些必要的groovy

    6. **Groovy Console**:这是一个集成开发环境,用于编写和运行Groovy脚本,对于学习和调试Groovy代码非常有帮助。 7. **Grails**:基于Groovy的Web框架,用于快速开发Java EE应用。它利用Groovy的简洁性和灵活性,...

    Groovy学习资料

    Groovy结合了Java的面向对象特性和Python、Ruby的简洁语法,使得它成为Java开发者进行快速开发、自动化任务以及编写简洁代码的理想选择。这份"Groovy学习资料"包含了深入理解和实践Groovy所需的关键知识点,帮助...

Global site tag (gtag.js) - Google Analytics