2012-07-26 13 views
7

Sto scrivendo una grande applicazione Java Red5 per il web. Red5 un'alternativa di Flash Media Server che è basata su java ed è scritta con il framework spring.creazione moduli riutilizzabili

Desidero avere molte versioni della mia applicazione online, ognuna con comportamenti diversi e classi diverse abilitate o disabilitate.

Sto cercando un modo per convertire il mio codice in codice basato su moduli che mi consentirà di rimuovere/aggiungere moduli/funzionalità dall'applicazione principale.

Conosco OSGI http://www.springsource.org/osgi ma dice che è necessario un server dm SpringSource e non ho idea di come funzionerà insieme in red5 e sembra molto complicato da comprendere appieno.

Non ho una buona conoscenza del framework di primavera in generale, lavoro con esso db-related e basta. red5 lo usa in modo più esteso.

così qualcuno può per favore avere un senso da questa informazione? c'è qualcosa che può essere fatto per dividere il mio codice in moduli?

qualsiasi informazione riguardante il problema sarebbe molto apprezzata.

risposta

4

Il mio metodo preferito per gestire questo tipo di situazione è l'In dipendenza dalla dipendenza (DI). Spring ha una funzionalità DI integrata, per cui un tutorial è facile da find online. Tuttavia, il DI di primavera non è buono, per molte ragioni, come quello fornito da Guice, che consiglio vivamente. (Il vantaggio principale di Guice rispetto al DI di primavera a mio avviso è la sicurezza del tipo.)

DI è fondamentalmente un meccanismo per sostituire le implementazioni di classe in fase di esecuzione. Piuttosto che le dipendenze di codice duro in classi (avendo una classe costruisca altre classi direttamente per esempio) le si codifica per far passare loro le classi dipendenti nei loro costruttori. Il framework DI passerà quindi le istanze corrette al runtime in base alla configurazione. La configurazione Spring può essere eseguita tramite annotazioni o un file XML, Guice utilizza una sottoclasse di com.google.inject.AbstractModule.

Quindi è possibile utilizzare diversi file di configurazione per le diverse istanze dell'applicazione e disporre di set diversi di funzionalità per l'attivazione o di implementazioni diverse della stessa funzione. Se si imposta l'applicazione per utilizzare questa tecnica, l'unica cosa che deve differire tra le istanze è un singolo file di configurazione.

+0

grazie. sembra un'alternativa fantastica. – ufk

Problemi correlati