Es gibt keine grails.config.locations
-Eigenschaft in Grails 3 mehr, jetzt verwendet Grails 3 stattdessen Spring's -Eigenschaft-Quellkonzept, aber wie kann ich das gleiche Verhalten in Grails 3 erreichen, wie es war vorherige Versionen? Angenommen, ich möchte eine Eigenschaft property.to.be.overridden
in der Datei application.grovy mit meiner externen Konfigurationsdatei überschreiben. Wie kann ich es tun?Override-Eigenschaft in application.groovy mit externer Konfiguration in Grails 3
Antwort
Das Äquivalent von grails.config.locations
spring.config.location
Hier ist ein Beispiel Positionen Konfiguration spezifiziert, während ein Glas von der Kommandozeile starten (Die gleichen Argumente können Innenseite der ide verwendet werden)
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
Auch da erwähnen Sie wollen Eigenschaften überschreiben es ist nützlich, um die Art und Weise Frühlings-Boot-Griffe profilspezifische Eigenschaftsdateien
(Mehrere Profile können auch angegeben werden)ich das eine etwas andere Art und Weise gelöst zu lernen, so konnte ich eine externe YAML-Datei laden .
Application.groovy
package com.mycompany.myapp
import grails.boot.GrailsApp
import grails.boot.config.GrailsAutoConfiguration
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean
import org.springframework.context.EnvironmentAware
import org.springframework.core.env.Environment
import org.springframework.core.env.PropertiesPropertySource
import org.springframework.core.io.FileSystemResource
import org.springframework.core.io.Resource;
class Application extends GrailsAutoConfiguration implements EnvironmentAware {
static void main(String[] args) {
GrailsApp.run(Application)
}
@Override
void setEnvironment(Environment environment) {
String configPath = System.properties["myapp.config.location"]
if (configPath) {
Resource resourceConfig = new FileSystemResource(configPath);
YamlPropertiesFactoryBean propertyFactoryBean = new YamlPropertiesFactoryBean();
propertyFactoryBean.setResources(resourceConfig);
propertyFactoryBean.afterPropertiesSet();
Properties properties = propertyFactoryBean.getObject();
environment.propertySources.addFirst(new PropertiesPropertySource("myapp.config.location", properties))
}
}
}
Dann gebe ich die YAML-Datei, wenn ich es
Befehlszeile
java -jar -Dmyapp.config.location=/etc/myapp/application.yml build/libs/myapp-0.1.war
Ich biete einen Link oben (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property -files) und es liest, dass Sie auch eine yaml-Datei angeben können, ohne dass Sie diese zusätzlichen Schritte ausführen müssen. Hat das nicht für dich funktioniert? Es besagt, dass Sie SnakeYAML auf dem Klassenpfad benötigen, damit es funktioniert. – Zergleb
- 1. konvertieren Konfigurationsdatei application.yml zu application.groovy in Grails 3.x
- 2. Grails 3 Aufruf externer Methoden
- 3. Grails 3 Cache - ehcache Konfiguration
- 4. Relativer Pfad in externer Subversion-Konfiguration
- 5. Wie 3 externe .groovy Konfigurationsdatei in Grails verwendet
- 6. Grails 3 Spring Security Pre Authentifizierung
- 7. Konfiguration von Grails Plugin
- 8. Debug GRAILS 3 in Eclipse
- 9. Grails externer Jms-Broker (aktiv mq)
- 10. Logback in Grails verwenden 3
- 11. Grails 3 mit Repository-Spiegel
- 12. Grails 3 - Marshaller mit XML
- 13. ActionScript 3 - Öffnen externer Dateien
- 14. Grails Mail Exchange Server-Konfiguration
- 15. Grails 3.0.1 - wie konfigurieren grails.gorm.default.constraints in application.yml
- 16. grails 3 Abhängigkeitsdienst gradle
- 17. Grails 3 upgrade Testprobleme
- 18. Kein transactionManager Fehler in Grails 3 Integrationstest
- 19. Grails 3 Plugin Installationsort
- 20. Wie Cach "org.springframework.web.multipart.MultipartException" in Grails 3
- 21. Eigenschaft in Integrationstest injizieren Grails 3
- 22. GrailsLinkGenerator Problem in Grails 3 Interceptor?
- 23. Nach symbolischem Link in Grails 3
- 24. Aktuator/Logfile-Endpunkt funktioniert nicht mehr mit externer Logback-Konfiguration
- 25. Grails 3 Asset Plugin nicht hinzufügen * .tpl.html Dateien
- 26. SubSonic 3 IncludeTables-Konfiguration
- 27. Benutzerdefiniert maven repo grails 3
- 28. Grails 3 Tomcat Krieg Web URL Kontext
- 29. Grails 3: Verwendung findAll mit Join-Tabellen
- 30. Definieren einer benutzerdefinierten Logger in Grails 3 mit Logback
laufe, wie hier von Graeme erklärt: http: // Grails.1312388.n4.nabble.com/Grails-3-External-config-td4658823.html Sie können Eigenschaften verwenden. '-Dcom.foo =" test "' überschreibt ** com.foo ** von application.yaml. Und Sie können eine externe groovy Datei hinzufügen, wenn Sie möchten, siehe den Beitrag. – olikaf