Artık 3.özelliği yok, artık Grails 3, Spring'in özellik kaynağı konseptini kullanıyor, ancak aynı davranışı, 3'te olduğu gibi 3 numaralı çarklarda nasıl elde edebilirim önceki sürümler? Benim harici yapılandırma dosyası ile application.grovy dosyasındaki bazı özellik property.to.be.overridden
geçersiz kılmak istediğimi varsayalım. Nasıl yapabilirim?Uygulamadaki mülkiyeti geçersiz kılmayı not edin. 3
cevap
grails.config.locations
eşdeğer spring.config.location
İşte
komut satırından bir kavanoz başlatılırken yapılandırma belirleyerek bir örnektir olan (Bunlar aynı argümanlar senin ide içinde kullanılabilir)
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
Ayrıca özellikleri geçersiz kılmak istediğinizi belirtin o İlkbahar Boot profili özgü özellik dosyalarını işleme biçimini öğrenmek için yararlıdır
Bu biraz farklı bir yolu çözüldü (Çoklu profilleri de belirtilebilir), bu yüzden harici bir YAML dosyası yükleyebilir .
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))
}
}
}
Sonra ben çalıştırdığınızda YAML dosyası belirtmek o
komut satırı
java -jar -Dmyapp.config.location=/etc/myapp/application.yml build/libs/myapp-0.1.war
Yukarıda bir bağlantı sağlıyorum (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property -files) ve bu ekstra adımları atmaya gerek kalmadan bir yaml dosyası belirtebileceğinizi de okur. Bu senin için işe yaramadı mı? Çalışması için sınıf yolunda SnakeYAML'a ihtiyacınız olduğunu söylüyor. – Zergleb
burada Graeme tarafından açıklandığı gibi: http: // grails.1312388.n4.nabble.com/Grails-3-External-config-td4658823.html Özellikleri kullanabilirsiniz. '-Dcom.foo =" sınama "' geçersiz kılınma ** com.foo ** from application.yaml. Ve isterseniz harici bir groovy dosyası ekleyebilirsiniz, gönderiye bakın. – olikaf