2014-08-27 101 views
6

Tek bir Spring Boot JPA uygulamasını - cli ile değil - veri almak için veri tabanı seçimi ile nasıl başlatabilirim, örneğin, localhost: 5432/my_db; veya 192.168.1.100:5432/our_db veya example.com:5432/their_db? Ayrı application-mydatasource.properties dosyaları oluşturmak tavsiye öncedenSpring Boot JPA Veritabanı Seçimi

+0

Seçim nasıl yapılacak? Kriter nedir? – geoand

cevap

3

yılında

spring.datasource.driverClassName=org.postgresql.Driver 
spring.datasource.url=jdbc:postgresql://localhost:5432/my_db 
spring.datasource.username=postgres 
spring.datasource.password=postgres 

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 
spring.jpa.generate-ddl=true 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=create 

Teşekkür muhtemelen de kullanıcı adı ve parola yapılandırmanız gerekir beri:

Mine anda içeren application.properties dosyasında birini kullanan her veri kaynağı yapılandırması için. Ardından aktif profili ayarlamaya dayalı olarak kullanmak istediğiniz veri kaynağını etkinleştireceksiniz. application-mydatasource.properties ardından application.properties herhangi özelliklerini geçersiz kılar

$ java -jar -Dspring.profiles.active=mydatasource demo-0.0.1-SNAPSHOT.jar 

: Ya application.properties (spring.profiles.active) ya da bir komut satırı argümanı üzerinden etkin profil ayarlayabilirsiniz. Ayrıca, mevcut profillerin listesine spring.profiles='u ayarlamanız gerektiğine inanıyorum.

Bkz. Profile specific properties. @Profile etiket yanında

+0

Özellik dosyalarının şu biçimde olması gerektiğini düşündüm: 'application- {profile} .properties'. Ayrıca, spring.profiles = '' spring.profiles.active = 'olmalıdır, doğru mu? –

+1

@EricFrancis, özellik dosyasının adı hakkında haklısınız. Cevabımı düzelttim. Ancak aktif profilde bir komut satırı olarak geçtiğimde, aktif profili spring.profiles.active olarak belirtmem gerekmiyor. – gyoder

+0

"YAML dosyası aslında --- satırları ile ayrılmış bir belge dizisidir ve her belge düzleştirilmiş bir haritaya ayrı ayrı ayrıştırılır. YAML belgesi bir spring.profiles anahtarı içeriyorsa, profil değeri (virgülle ayrılmış) profil listesi) Spring Environment.acceptsProfiles() içine beslenir ve bu profillerden herhangi biri aktif ise son birleştirme belgesine dahil edilir (aksi halde). 'Spring.profiles' özelliği yalnızca bir YAML dosyasında geçerlidir. – hellectronic

0

Başka seçenekler, uygulama dağıtırken olacağı her çevre içinde beyan etmek zorunda kalacak göre, Bahar Boot etiketi kullanabilirsiniz:

@ConditionalOnProperty (isim = "mülkünün", havingValue = "propertyValue")

Ve her durumda yüklemek istediğiniz veritabanı karar vermek için bir özellik bildirmek!

Yardım etmeyi umut!