2016-03-22 4 views
1

Ich habe die folgende Konfiguration in meiner Feder Kontext:Federprofile: Welches <beans> Element sollte geparst werden?

<beans profile="!prof1" > 
    <security:authentication-manager id="authenticationManager" erase-credentials="true"> 
       <security:authentication-provider ref="1" /> 
       <security:authentication-provider ref="2" /> 
       <security:authentication-provider ref="3" /> 
      </security:authentication-manager> 
</beans> 

<beans profile="prof1" > 
    <security:authentication-manager id="authenticationManager" erase-credentials="true"> 
       <security:authentication-provider ref="0" /> 
       <security:authentication-provider ref="1" /> 
       <security:authentication-provider ref="2" /> 
       <security:authentication-provider ref="3" /> 
      </security:authentication-manager> 
</beans> 

Es ist die Frage <beans> Elemente berücksichtigen analysiert werden: dass PROF1 und prof2 Profile aktiviert werden.

Es sieht aus wie es immer wählen Sie diese <beans profile="prof1" >, aber nicht sicher, warum es nicht eine andere <beans profile="!prof1" > wählt. Kann ich weiterleiten, dass es immer <beans> ohne Ausrufezeichen wählt?

Antwort

2

Die Javadoc for Profile besagt, dass

Wenn ein bestimmtes Profil mit dem NOT-Operator vorangestellt ist aktiv (!), wird die annotierte Komponente registriert, wenn das Profil nicht aktiv ist

(Die spring-beans XSD stellt die für XML-Bean Definitionen gleich, aber ist schwieriger zu lesen.)

Wie ich das verstehen, nur PROF1 an für die Bohnen Element mit Profil betrachtet wird = „! PROF1“. Dass Sie auch prof2 aktivieren, ist für diese Bean-Definition nicht relevant.

+0

Danke Michael zur Klarstellung! – fashuser

1

Wenn Ihr aktives Profil PROF1 und prof2 das Folgende

<beans profile="prof1" > 
<security:authentication-manager id="authenticationManager" erase-credentials="true"> 
      <security:authentication-provider ref="0" /> 
      <security:authentication-provider ref="1" /> 
      <security:authentication-provider ref="2" /> 
      <security:authentication-provider ref="3" /> 
     </security:authentication-manager> 

+0

Danke Essex! Könnten Sie bitte einige Referenzen mitteilen, warum dieses Profil ausgewählt wird? Weil ich im Moment diesen Frühling sehe, wähle dieses Element , aber nicht sicher, dass es immer wahr sein wird. – fashuser

+0

Ich habe die Dokumentation nicht angeschaut, ich habe einen Test gemacht. Ich wusste nicht, dass es so funktioniert! Es macht, was Sie erwarten, d. H.! Prof1 wird für ein Testprofil aktiv sein. –

Verwandte Themen