使用Spring引导游戏2.4 Java应用程序的方法是什么?

Adr*_*Pop 6 java spring dependency-injection playframework-2.4

https:// www.playframework.com/documentation/2.4.x/JavaDependencyInjection上的文档提到DI现在已集成到框架中:

开箱即用,Play提供了基于JSR 330的依赖注入支持.Play附带的默认JSR 330实现是Guice,但是可以插入其他JSR 330实现.

我找不到任何使用Spring的HOWTO或工作示例.

https:// www.playframework.com/documentation/2.4.x/Tutorials上的当前文档链接到示例"Play with Spring Data JPA",网址为https:// typesafe.com/activator/template/play-spring-data -jpa但评论已经提到它已经过时了.此外,在GitHub页面https:// github.com/typesafehub/play-spring-data-jpa上有一些未解决的问题,提到它在Play 2.4.0中不起作用.

代码是2年,仍然使用Global.java类来引导Spring.我没关系,但由于方法getControllerInstance(),代码在Play 2.4中不再编译.

这个项目https:// github.com/jroper/play-spring看起来很有前景,但它在Scala中,并列出了许多TODO,以及https:// github.com/jroper/play-spring/blob/上的SpringApplicationLoader类master/core/src/main/scala/play/api/inject/spring/SpringApplicationLoader.scala看起来太复杂了我想要的只是启动一个简单的Spring上下文.

现在看起来我必须降级Play以使用旧的Global.java黑客(并找出所需的所有更改......)

(一些编辑将这些链接重新放入,它们是合法的,它不会让我......)

Dev*_*abc 6

多人在Play 2.4中遇到此问题,导致其中一些人坚持使用2.3.

您从Play功能中引用的文本的问题在于它表明使用Play 2.4可以插入任何JSR 330容器,但不幸的是,它很难并且到目前为止仍然没有完全可用的解决方案.这基本上是反对戏剧自己的哲学,其中指出:

在Play 2中,我们希望使用任何数据存储驱动程序,ORM或任何其他数据库访问库非常容易,而无需与Web框架进行任何特殊集成.(当你想在Play 2.4中使用Spring ORM时不是这种情况.)

https://groups.google.com/forum/#!topic/play-framework/hFOtzSNSDsQ还讨论了此问题以及多个解决方案尝试的链接,其中最佳解决方案并未完全正常运行,但它可能符合您的需求: https ://github.com/zarinfam/play24-guice-spring

另一个解决方案是为Springs ApplicationContext创建一个单例,并在Play客户端类中使用该单例.然后(不幸的是)你没有在这些类中有依赖注入,但至少你可以以干净的依赖注入方式使用你的非Play类.

更新: 我刚刚在GitHub上创建了这个有效的Play-Java-Spring模板:https://github.com/jtdev/play-java-spring

  • 哇,扮演人们正在用他们的"minior"更新做出一些奇怪的决定.迁移到2.3并不是一件容易的事,因为他们对API做了很大的改动,现在我们无法轻松迁移到2.4,因为没有Global.在2.5.1中他们不支持JAVA,在2.5.2中不再支持SCALA.hahhaha (3认同)