数据库
首页 > 数据库> > java-Play-Framework 2.4未选择Spring-Data-Mongodb依赖

java-Play-Framework 2.4未选择Spring-Data-Mongodb依赖

作者:互联网

我正在使用带有Spring-Data-Mongodb的播放框架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

更新

我发现了一个问题,那就是我们的游戏框架激活器无法下载spring-framework依赖项.当我打开.ivy文件夹并且没有jar可用时.我的系统已与Internet连接,但仍然播放sbt无法解决依赖关系.我该如何解决这个问题?

解决方法:

要使用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

标签:java,spring,sbt,playframework,spring-data-mongodb
来源: https://codeday.me/bug/20191012/1899739.html