[SPRING] Play-Framework 2.4 : Juice 대신 Play Framework를 사용하여 스프링 종속성 삽입 사용
SPRINGPlay-Framework 2.4 : Juice 대신 Play Framework를 사용하여 스프링 종속성 삽입 사용
저는 Spring-Data-Mongodb와 같은 어플리케이션에서 Spring-Modules의 대부분을 사용해야 할 필요가 있기 때문에 Play-Framework Guice Dependency injection 대신 Spring-Depedency injection을 사용하고 있습니다.하지만 문제는 우리의 의존성입니다. 다음과 같이 컨트롤러에 제대로 삽입되지 않습니다.
내 구성 :
@Configuration
@ComponentScan(basePackages={"service", "controllers"})
@EnableMongoRepositories(basePackages="repository")
public class SpringDataMongoConfiguration extends AbstractMongoConfiguration{
private play.Configuration configuration = play.Configuration.root();
private MongoClientOptions mongoClientOptions(){
Builder builder = new Builder();
builder.connectionsPerHost(configuration.getInt("connections-per-host"));
builder.connectTimeout(configuration.getInt("connections-timeout"));
builder.maxConnectionIdleTime(configuration.getInt("max-connections-idle-time"));
builder.maxConnectionLifeTime(configuration.getInt("max-connections-life-time"));
builder.minConnectionsPerHost(configuration.getInt("max-connections-per-host"));
builder.socketKeepAlive(configuration.getBoolean("socket-keep-live"));
builder.socketTimeout(configuration.getInt("socket-timeout"));
return builder.build();
}
private ServerAddress serverAddress(){
ServerAddress serverAddress = new ServerAddress(new InetSocketAddress(configuration.getString("mongodb.uri"), configuration.getInt("mongodb.port")));
return serverAddress;
}
@Override
protected String getDatabaseName() {
return configuration.getString("mongodb.dbname");
}
@Override
public Mongo mongo() throws Exception {
return new MongoClient(serverAddress(), mongoClientOptions());
}
@Override
protected String getMappingBasePackage() {
return configuration.getString("package.scan");
}}
내 built.sbt 종속성 :
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"org.springframework" % "spring-context" % "4.1.6.RELEASE",
"org.springframework.data" % "spring-data-mongodb" % "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
fork in run := true
built.sbt에서 routes Guenerator : Play Guice Dependency Injection을 중지하기위한 InjectedRoutesGenerator를 주석 처리합니다.
내 경로 파일 :
# Home page
GET / @controllers.Application.index()
응용 프로그램을 실행할 때 다음 오류가 발생합니다.
- play.api.libs.concurrent.ActorSystemProvider - Starting application default Akka system: application
- play.api.Play - Application started (Dev)
********************************** userService : null
- application -
! @6nbpln6jk - Internal server error, for (GET) [/] ->
이 오류에 따르면 Spring @Autowire 주석은 제대로 작동하지 않습니다. 하지만 나는 봄 @ @ 오토 와일이 일하지 않을 때 이유를 얻지 못하고 있습니까? 이 문제를 어떻게 해결할 수 있습니까?
해결법
-
==============================
1.이 답은 당신의 문제를 해결하지 못할 것이지만 다른 접근법을 사용하여 문제를 극복하는 방법을 안내해주기를 바랍니다. 우선, Play에서 통합 된 Spring을 사용하고 있지만, Spring은 추상 클래스를 사용하여 현재는 자체 라이프 사이클을 처리합니다. Play (2.4. *)는 기본 Guice 삽입 지원을 사용합니다.
이 답은 당신의 문제를 해결하지 못할 것이지만 다른 접근법을 사용하여 문제를 극복하는 방법을 안내해주기를 바랍니다. 우선, Play에서 통합 된 Spring을 사용하고 있지만, Spring은 추상 클래스를 사용하여 현재는 자체 라이프 사이클을 처리합니다. Play (2.4. *)는 기본 Guice 삽입 지원을 사용합니다.
귀하의 문제에 대한, 내 연구 후 플레이 2.4 주스와 봄의 의존성 주입 교체 / 통합에 대한 링크를 발견했습니다. 그러나 Spring for Play 2.4와의 통합은 아직 존재하지 않으며이 문제에서 언급 한 James Ropper의 프로토 타입 만 있습니다.
github.com/playframework/playframework/issues/4665
github.com/jroper/play-spring
github.com/spring-projects/spring-guice
-
==============================
2.스프링 애플리케이션과 연극을 통합하려면 단계별로 개발 방법을 단계적으로 제공해야합니다. 여기를 클릭하십시오.
스프링 애플리케이션과 연극을 통합하려면 단계별로 개발 방법을 단계적으로 제공해야합니다. 여기를 클릭하십시오.
-
==============================
3.이 질문에 대한 늦은 대답 일 수 있습니다. 나중에 참조 할 수 있도록 게시하십시오.
이 질문에 대한 늦은 대답 일 수 있습니다. 나중에 참조 할 수 있도록 게시하십시오.
Play 2.5.X에서 봄 콩을 사용하는 것과 비슷한 도전 과제에 직면했습니다. guice가 spring을 guice injector와 통합하기 위해 제공하는 api guice-spring이 있습니다. 이 API를 사용하여 주입 용 Spring 컨텍스트, 특히 컨트롤러 bean에서 bean을 가져 오도록 guice를 구성 할 수있었습니다. 봄 콩을 guice에 바인딩하는 방법을 보려면이 링크를 확인하십시오.
from https://stackoverflow.com/questions/32406005/play-framework-2-4-use-spring-depedency-injection-with-play-framework-instead-o by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Hibernate와 Spring을 사용하는 JPA는 Jboss에서 설정 한 여러 데이터베이스 / 데이터 소스에 접근한다. (0) | 2019.05.13 |
---|---|
[SPRING] Spring MVC에서 자동 생성 ID (0) | 2019.05.13 |
[SPRING] `Long을 Spring 5에서 Example <S>`로 변환 할 수 없다. JPA findOne () (0) | 2019.05.13 |
[SPRING] @RequestMapping 정규 표현식 (0) | 2019.05.13 |
[SPRING] Spring 애플리케이션이 데이터를 지속하지 않는 것으로 보입니다. (0) | 2019.05.13 |