如何使用 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文件