Mam dwie fasolki. Obie implementują funkcję mailingu. Jeden działa tylko wtedy, gdy jest wdrożony na serwerze aplikacji. Drugi służy do testowania.Węzłowe domyślne okablowanie z profilem
Mamy profil dla każdego programisty i środowiska. Chcę podłączyć komponent testowy tylko podczas faktycznego testowania. Drugi komponent powinien być używany, gdy nie jest testowany. Jak mogę to zarchiwizować?
@Component
@Profile("localtest")
public class OfflineMail implements Mailing {}
Rozwiązanie zbliża:
Użycie "default" Czytałem to gdzieś, ale nie wydaje się być nie upadek do tyłu do "default" dla profilu jak "dev":
@Component
@Profile("default")
public class OnlineMail implements Mailing {}
-> Wyjątek braku fasoli dla znalezionego okablowania.
Pozostawienie profil na:
@Component
public class OnlineMail implements Mailing {}
-> Zgłasza unikalny wyjątek podczas uruchamiania "localtest" profil.
dodanie wszystkich profili:
@Component
@Profile("prod")
@Profile("integration")
@Profile("test")
@Profile("dev1")
@Profile("dev2")
@Profile("dev3")
...
public class OnlineMail implements Mailing {}
to rzeczywiście działa, jednak nasi deweloperzy nie są numerowane używają „dev <WindowsLogin>” i dodawania profili, może pracować dla jednego ziarna, ale będzie dostać w kłopoty, gdy używa się go dla kilku fasoli, ponieważ to na pewno staje się brzydkie.
Używanie czegoś podobnego do @Profile ("! Localtest") nie działa tak dobrze.
Czy ktoś wie lepszy sposób, aby uzyskać "drutu domyślnie, jeśli nie znaleziono konkretnej fasoli"?
'@ Component' bez' @ Profile' ma być domyślnym fasola, jeśli nic nie jest przewodowy. Czy próbowałeś uniknąć unikalnego wyjątku przy ustawianiu nazwy komponentu? Mam na myśli '@Component (" mail ")' z '@Profile (" localtest ")' i bez niego? – n1ckolas