Wie deklariere ich Bean, wenn mehrere Profile nicht aktiv sind?

8

In meiner Spring-Boot-App möchte ich eine Bean abhängig von (un) geladenen Federprofilen bedingt deklarieren.

Die Bedingung:

%Vor%

Meine Lösung bisher (was funktioniert):

%Vor%

Gibt es einen eleganteren (und kürzeren) Weg, diesen Zustand zu erklären?
Besonders möchte ich die Verwendung der Spring Expression Language hier loswerden.

    
Mike Boddin 16.02.2016, 09:55
quelle

3 Antworten

12

Wenn Sie ein einzelnes Profil haben, können Sie einfach eine @Profile Annotation mit dem Nicht-Operator verwenden. Es akzeptiert auch mehrere Profile, jedoch mit der Bedingung OR .

Also ist die alternative Lösung, eine benutzerdefinierte Condition mit der @Conditional Anmerkung. Wie so:

%Vor%

Und dann notieren Sie Ihre Methode mit, wie:

%Vor%     
Stanislav 16.02.2016, 12:49
quelle
9

Ich bevorzuge diese Lösung, die ausführlicher ist, aber immer noch gut für zwei Profile:

%Vor%     
willerr 19.10.2016 20:29
quelle
4

Leider habe ich keine kürzere Lösung für Sie, aber wenn es in Ihrem Fall geeignet ist, für jedes Profil die gleichen Beans zu erstellen, können Sie den folgenden Ansatz in Betracht ziehen.

%Vor%     
dimuha 16.02.2016 12:45
quelle

Tags und Links