2

Play 1.x 응용 프로그램에서 앱의 서비스 사이에 접착제 레이어 역할을하는 AppContext라는 클래스를 만들고 싶습니다. 그것은 단순한 의존성 인젝터처럼 작동 할 수 있지만, 이벤트의 워크 플로우를 제어하고, 다른 레이어의 이벤트를 잡아서 서비스가 스스로 수행 할 필요가 없기를 원합니다.Play 플러그인으로 AppContext 구현

플러그인으로 AppContext를 구현하면 응용 프로그램이로드 될 때 일부 작업을 수행 할 수 있고 일부 이벤트를 수신하고 비동기 적으로 일부 작업을 수행 할 수 있으므로 최상의 옵션이된다는 사실을 알게되었습니다.

이것이 올바른 방법입니까?

답변

0

이 클래스 인 AppContext를 특정 캐시 항목의 래퍼로 구현하고 배포 된 캐시 처리기 (이미 memcache, ehcache, HazelCast 등으로 구성 가능)를 사용할 수 있습니다.

public class AppContext { 
    public String getConfig(String name) { 
     return Cache.get("appcontext.config."+name, String.class); 
    } 

    public void setConfig(String name, String value) { 
     Cache.set("appcontext.config."+name, value); 
    } 

    ... 
} 

가 여러 플러그인이 이미 단순히 memcache에, 어 캐시, Hazelcast,이 "분산 캐시 매니저"의 일부를 구성.

또는 직접 Hazelcast (또는 기타)를 사용하여 메모리 내 컨텍스트를 유지 및 동기화하고 큐, 데이터 저장소 등을 분산 된 방식으로 처리 할 수 ​​있습니다.