Ho due fagioli. Entrambi implementano la funzione di mailing. Uno funziona solo quando è distribuito su un server delle applicazioni. L'altro è usato per i test.Cablaggio di default molla con profilo
Abbiamo un profilo per ogni sviluppatore e ambiente. Voglio cablare il bean di test solo quando effettivamente collaudo. L'altro bean dovrebbe essere usato quando non viene testato. Come posso archiviare questo?
@Component
@Profile("localtest")
public class OfflineMail implements Mailing {}
Soluzione avvicina:
L'utilizzo di "default" Ho letto da qualche parte, ma sembra che ci sia alcun ripiego per "default" per un profilo come "dev":
@Component
@Profile("default")
public class OnlineMail implements Mailing {}
-> Eccezione per nessun bean per il cablaggio trovato.
Lasciando il profilo out:
@Component
public class OnlineMail implements Mailing {}
-> genera un'eccezione unica durante l'esecuzione del "localtest" profilo.
Aggiunta di tutti i profili:
@Component
@Profile("prod")
@Profile("integration")
@Profile("test")
@Profile("dev1")
@Profile("dev2")
@Profile("dev3")
...
public class OnlineMail implements Mailing {}
Questo è in realtà di lavoro, tuttavia i nostri sviluppatori non sono numerati usano "dev <WindowsLogin>" e aggiungendo i profili, può funzionare per un fagiolo, ma si otterrà nei guai quando lo si utilizza per diversi fagioli, dato che questo diventa decisamente brutto.
L'utilizzo di qualcosa come @Profile ("! Localtest") non sembra funzionare altrettanto bene.
Qualcuno conosce un modo migliore per ottenere un "filo per impostazione predefinita se non viene trovato un bean specifico"?
'@ Component' senza' @ Profile' deve essere di fagioli di default, se non è cablata. Hai provato a evitare un'eccezione univoca con il nome dell'impostazione del componente? Voglio dire, '@Component (" mail ")' con '@Profile (" localtest ")' e senza di esso? – n1ckolas