2012-07-26 7 views
7

웹용으로 큰 Red5 Java 응용 프로그램을 작성하고 있습니다.Red5 자바 기반이며 스프링 프레임 워크로 작성된 플래시 미디어 서버 대체품.재사용 가능한 모듈 만들기

각기 다른 동작과 다른 클래스가 활성화되거나 비활성화되어있는 많은 응용 프로그램 버전을 온라인으로 가져오고 싶습니다.

코드를 모듈 기반 코드로 변환하여 주 응용 프로그램에서 모듈/기능을 제거/추가 할 수있는 방법을 찾고 있습니다.

OSGI http://www.springsource.org/osgi에 대해 알고 있지만 SpringSource dm 서버가 필요하며 red5에서 함께 작동하는 방법을 알지 못해 완전히 이해하기가 복잡해 보입니다.

저는 스프링 프레임 워크에 대한 일반적인 지식이 없기 때문에 db-related와 관련이 있습니다. red5는보다 광범위하게 사용합니다.

누구나이 정보를 이해할 수 있습니까? 내 코드를 모듈로 나눌 수있는 방법이 있습니까?

문제에 관한 정보는 크게 감사하겠습니다.

답변

4

이러한 상황을 처리하는 데 선호되는 방법은 종속 주입 (Dependancy Injection, DI)입니다. Spring에는 DI 기능이 내장되어 있습니다.이 튜토리얼에서는 find online을 쉽게 사용할 수 있습니다. 그러나 스프링의 DI는 많은 이유 때문에 좋지 않습니다. Guice에 의해 제공되는 것입니다. (Spring의 DI에 대한 Guice의 가장 큰 장점은 타입 안전입니다.)

DI는 기본적으로 런타임시 클래스 구현을 대체하기위한 메커니즘입니다. 클래스에 대한 하드 코드 의존성보다는 (예를 들어, 클래스가 다른 클래스를 직접 구성하도록함으로써) 생성자에서 종속 클래스를 전달하도록 코드를 작성할 수 있습니다. 그런 다음 DI 프레임 워크는 구성에 따라 런타임에 올바른 인스턴스를 전달합니다. Spring 구성은 주석이나 XML 파일을 통해 수행 할 수 있으며 Guice는 com.google.inject.AbstractModule의 하위 클래스를 사용합니다.

응용 프로그램의 다른 인스턴스에 대해 서로 다른 구성 파일을 사용할 수 있으며 활성화를 위해 여러 기능 세트를 제공하거나 동일한 기능을 실제로 구현할 수 있습니다. 이 기술을 사용하도록 응용 프로그램을 설정하면 인스턴스간에 필요한 유일한 것은 단일 구성 파일입니다.

+0

감사합니다. 대단한 대안처럼 보입니다. – ufk

관련 문제