Spring-Data-Mongodb依赖项未被Play-Framework 2.4选中

时间:2015-08-31 07:19:40

标签: java spring playframework sbt spring-data-mongodb

我正在使用带有Spring-Data-Mongodb的play-framework 2.4。但是当我编译项目时,编译会抛出一个错误:

[error] /home/james/play-spring-data-mongodb/app/configuration/SpringDataMongoConfiguration.java:10: package org.springframework.data.mongodb.config does not exist
[error] org.springframework.data.mongodb.config.AbstractMongoConfiguration
[error] /home/james/play-spring-data-mongodb/app/configuration/SpringDataMongoConfiguration.java:11: package org.springframework.data.mongodb.repository.config does not exist
[error] org.springframework.data.mongodb.repository.config.EnableMongoRepositories
[error] /home/james/play-spring-data-mongodb/app/configuration/SpringDataMongoConfiguration.java:25: cannot find symbol
[error]   symbol: class AbstractMongoConfiguration
[error] AbstractMongoConfiguration
[error] /home/james/play-spring-data-mongodb/app/configuration/SpringDataMongoConfiguration.java:24: cannot find symbol
[error]   symbol: class EnableMongoRepositories
[error] EnableMongoRepositories

最重要的是,昨天这完美无缺。但是今天我在尝试编译项目时遇到了这个错误。我的build.sbt文件如下:

name := """play-mongo-template"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
    javaJdbc,
    cache,
    javaWs,
    "org.springframework" % "spring-context" % "4.1.6.RELEASE",
    "org.springframework.data" % "spring-data-mongodb-parent" % "1.7.2.RELEASE"
)

// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator

更新

我发现了问题,问题在于,我们的play-framework激活器无法下载spring-framework依赖项。当我打开.ivy文件夹时,没有可用的罐子。我的系统与Internet连接,但仍然没有解决依赖关系。我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:-1)

要在Spring Data中使用存储库功能,生命周期必须由Spring管理。

因此在Play 2.4 / 2.5中使用它,而不添加Spring作为依赖是一个问题,因为默认生命周期由Guice管理。

我想出了一种创建Spring bean并将其生命周期管理转移到Guice的方法。因此,他们可以通过Guice而不是Spring注入项目的任何地方。

对于没有任何Spring特定功能的其他组件,可以正常创建它们,它们的生命周期将由Guice管理。

对于其他特定于Spring且只能在Spring容器中运行的组件,它们也可以在项目中注入,它们的生命周期将由Guice管理。

我修改了Play 2.5文档中包含的入门项目来演示它。

请查看此存储库。
https://github.com/mohitsinha/play-java-spring-data-mongodb