Ich habe eine Analyse eines Legacy-Codes (es ist Spring-Anwendung) und fand sowohl PropertySourcesPlaceholderConfigurer
und PropertyPlaceholderConfigurer
im Frühjahr Kontext initialisiert. Ich weiß, dass nur eine Instanz von PropertyPlaceholderConfigurer
im Spring-Kontext existieren sollte. Meine Frage ist, ob diese Regel für PropertySourcesPlaceholderConfigurer
und PropertyPlaceholderConfigurer
gilt. Ist es ein Fehler, beide in einen Zusammenhang zu bringen?PropertySourcesPlaceholderConfigurer und PropertyPlaceholderConfigurer
Antwort
Mehrere Eigenschaftskonfigurationen können registriert werden. Aber wenn sich beide PlaceholderConfigurer auf denselben Satz von Eigenschaften beziehen, dann ist dies eine Fehlkonfiguration und sollte vermieden werden.
Andernfalls ist es bei der Registrierung mehrerer PlaceholderConfigurer wichtig, dass die Reihenfolge der Bean korrekt angegeben wird. So kann der Frühling die richtigen Werte für die Platzhalter auflösen.
Hier finden Sie eine gute Lektüre.
PropertySourcesPlaceholderConfigurer ist flexibler durch die Vorteile der Umwelt und PropertySource Mechanismen nehmen auch im Frühjahr 3.1 zur Verfügung gestellt.
PropertyPlaceholderConfigurer ist immer noch geeignet für den Einsatz bei der:
- die Feder-Kontextmodul nicht verfügbar ist (das heißt, man verwendet Spring BeanFactory API, wie zum Applicationgegen).
- Die vorhandene Konfiguration verwendet die Eigenschaften "systemPropertiesMode" und/oder "systemPropertiesModeName". Benutzer werden ermutigt, diese Einstellungen nicht mehr zu verwenden und stattdessen die Suchreihenfolge für die Eigenschaftenquelle über die Umgebung des Containers zu konfigurieren. Die genaue Funktionalität kann jedoch beibehalten werden, indem weiterhin PropertyPlaceholderConfigurer verwendet wird.
PropertySourcesPlaceholderConfigurer Diese Klasse wird als allgemeiner Ersatz für PropertyPlaceholderConfigurer in Spring 3.1-Anwendungen. Es wird standardmäßig verwendet, um das property-placeholder -Element bei der Arbeit mit der Spring-Kontext-3.1-XSD zu unterstützen, während die Spring-context-Versionen < = 3.0 standardmäßig PropertyPlaceholderConfigurer verwenden, um Abwärtskompatibilität zu gewährleisten.
- 1. PropertySourcesPlaceholderConfigurer und SPEL?
- 2. WebSphere und PropertyPlaceholderConfigurer
- 3. PropertySourcesPlaceholderConfigurer mit Spezifischem Wert Parser
- 4. Java Frühling PropertyPlaceholderConfigurer und wie trimmen Leerzeichen/Tabs in Eigenschaften
- 5. Was ist die Beziehung zwischen Feld 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' und PropertyPlaceHolderConfigurer?
- 6. Spring: programmatisch PropertyPlaceHolderConfigurer auf keine Singelton Beans
- 7. Kann ein Spring PropertyPlaceholderConfigurer einen anderen konfigurieren?
- 8. Festlegen des Klassenpfads für eine Spring PropertyPlaceholderConfigurer-Bean
- 9. Alle Eigenschaften von PropertyPlaceholderConfigurer in eine Bean injizieren
- 10. Ist es möglich, mehrere PropertyPlaceHolderConfigurer in meinem ApplicationContext zu haben?
- 11. Wie in PropertyPlaceholderConfigurer in JSP Eigenschaft von Immobilien Datei
- 12. Mit spring3 @Value auf Werte von PropertyPlaceholderConfigurer zugreifen?
- 13. Gibt es eine PropertyPlaceholderConfigurer-ähnliche Klasse zur Verwendung mit Spring, die XML akzeptiert?
- 14. Kann ich PropertyPlaceholderConfigurer verwenden, um die Eigenschaften von String zur Laufzeit zu ersetzen?
- 15. Im Frühjahr erhalten "java.lang.IllegalArgumentException: Platzhalter konnte nicht aufgelöst werden, obwohl" PropertyPlaceholderConfigurer "
- 16. Spring-Platzhalter löst keine Eigenschaften in JavaConfig auf
- 17. Spring Boot - Umgebung @Autowired wirft NullPointerException
- 18. Laufzeitauflösung von Zielen in Spring und JMS
- 19. Spring PropertyPlaceHolder Java Config externe Eigenschaftendatei
- 20. Spring PropertyPlaceholderConfigurator laden von DB
- 21. So erweitern Sie die Feder durch Konfigurieren der Feder xml
- 22. Referenz $ {} user.home in Spring Java-Konfiguration
- 23. Wie verwende ich YamlPropertiesFactoryBean zum Laden von YAML-Dateien mit Spring Framework 4.1?
- 24. ein Spring-Bean-Klassennamen einen Spel Ausdruck und PropertyPlaceHolder
- 25. Initialisieren Sie das Gebietsschema und die Zeitzone mit der Spring-Konfiguration
- 26. @Value nicht in anderen Paketen injiziert bekommen
- 27. Wie verzögere ich die Auswertung einer Spring @ Conditional-Konfigurationsannotation?
- 28. Wie kann ich die Eigenschaftendatei in Spring 4 mithilfe von Anmerkungen neu laden?
- 29. So überschreiben Sie Spring 3.1 @PropertySource, um IgnoreResourceNotFound & IgnoreUnresolvablePlaceholders festzulegen
- 30. Wie Frühling zwingen, die BeanFactoryPostProcessors zuerst zu laufen, wenn @Conditional
Danke für die Antwort. Eigentlich mein Problem mit Autowiring (@Value) im Frühjahr Web-Anwendung (Feder-MVC). Ich habe Property-Datei und zwei PPCs (in der Frage erwähnt) im übergeordneten Kontext. In meinem Child-Kontext kann ich die Eigenschaft jedoch nicht mit (@Value) autowire und ich dachte, das Problem liege darin. Ich habe ein anderes PPC im Kindkontext definiert, aber ich wollte PPC wiederverwenden, das im Elternkontext definiert wurde. In Ihrer Referenz (Punkt 8) wird die Abhängigkeit zwischen Kind-Eltern-Kontext beschrieben. Allerdings habe ich einen Defekt gefunden, der beschreibt, warum dies geschieht https://jira.spring.io/browse/SPR-8994 – mvb13