如何使用 Spring boot 将 Groovy 类与 java 类一起运行

Posted

技术标签:

【中文标题】如何使用 Spring boot 将 Groovy 类与 java 类一起运行【英文标题】:How is it Possbile to run Groovy class together with java classes using Spring boot 【发布时间】:2015-06-17 18:31:30 【问题描述】:

我正在尝试将我的 spring-boot 应用程序(使用 gradle 和 java)与 groovy 类一起运行。

所以我添加了控制器(如示例所示)

控制器在src/main/groovy

@RestController
class ThisWillActuallyRun 

    @RequestMapping("/")
    String home() 
        "Hello World!"
    


我也有我的java类

src/main/java

我正在使用 java -jar(或开发模式下的 gradle:bootRun)运行 spring boot

代码已编译,但 groovy 控制器未加载。

我错过了一些关于在同一个 jar 上并排运行 groovy 和 java 类的概念?

谢谢。

【问题讨论】:

您是否检查过您的 groovy 类是否在生成的 jar 中?一旦类被编译和打包,就没有区别了。 两个根中使用的包是什么(因为组件扫描)? 嗨@rayman 我的回答对你有帮助吗? 【参考方案1】:

我想你忘了应用 groovy gradle 插件。 我通过创建一个包含 java 和 groovy 类的 spring boot 项目并仅应用 java 插件来复制您的 simptoms。 为了能够在您的应用程序中包含 groovy 类,请替换

apply plugin: "java"

apply plugin: "groovy"

groovy 插件是 java 插件的子类,因此您仍然可以编译 java 类。

如果不是这样,您将不得不提供更多信息,例如 gradle 构建脚本。如果你正在使用 gradle。

【讨论】:

以上是关于如何使用 Spring boot 将 Groovy 类与 java 类一起运行的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot学习 (Groovy与Spring Boot Cli)

使用 Gradle、Groovy 和 spring-boot 加载失败并出现 java.lang.NoSuchFieldException:classCache

使用 Groovy、IntelliJ 和 Gradle 在项目中“重新运行 Spring Boot 配置注释处理器”

在Java Spring Boot应用程序中引发ClassNotFoundException的Groovy文件

Groovy 和 JPA 阻止 Spring Boot CrudRepository 进行插入

Spring Boot 参考指南 - 从 app.groovy 示例中获取 404