27 Mayıs 2019 Pazartesi

SpringBoot DataSource application.properties Ayarları

Giriş
DataSource nesnesi yaratmak için 2 tane yöntem var.
1. Kod içinde ismi dataSource olan bir bean yaratmak
2. application.properties dosyasına spring.datasource ile başlayan ayarları girmek ve Spring'in bir DataSource bean'i yaratmasını sağlamak.

Bu yazıda ikinci yöntem anlatılıyor. Eğer birinci yöntem kullanılırsa Spring auto configuration yapmaz. Açıklaması şöyle
If you define your own DataSource bean, auto-configuration does not occur.
Güvenlik
application.properties dosyasına şifre ve diğer önemli şeyleri yazmak istemiyorsak Spring'e parametre olarak geçmek mümkün

1. JVM Parametreleri
Örnek
Şöyle yaparız.
java -jar your-spring-boot-app.jar
 -Dspring.datasource.url=jdbc:postgresql://localhost/database ...
2. Ortam Değişkeni
Örnek
Şöyle yaparız.
export SPRING_DATASOURCE_URL="jdbc:postgresql://localhost/database"
3. spring.datasource Alanları
Veri tabanı bağlantısı içindir. Bu başlık altında
url,username,password,driver-class-name,testWhileIdle,validationQuery
gibi değerler doldurulur.

continue-on-error Alanı
Açıklaması şöyle
By default, Spring Boot enables the fail-fast feature of the Spring JDBC initializer. This means that, if the scripts cause exceptions, the application fails to start. You can tune that behavior by setting spring.datasource.continue-on-error.
Örnek
Şöyle yaparız.
spring.datasource.continue-on-error=true
initialization-mode Alanı
Şöyle yaparız.
spring.datasource.url= jdbc:postgresql://localhost:5432/Crypto
spring.datasource.username=postgres
spring.datasource.password=wololo
spring.datasource.initialization-mode=always
ConnectionPool Değerleri
Hikari kullanıyorsak Hikari Ayarları yazısına taşıdım.

driver -class-name Alanı
Bu alan tamamen veri tabanına mahsus. Şu değerleri alabilir
- org.h2.Driver
- com.mysql.jdbc.Driver
- oracle.jdbc.driver.OracleDriver
- org.postgresql.Driver

h2
H2 Ayarları yazısına taşıdım.

Mysql
Mysql Ayarları yazısına taşıdım.

Oracle
Oracle Ayarları yazısına taşıdım.

PostgreSQL
PostgreSQL Ayarları yazısına taşıdım.

Tomcat
Tomcat Ayarları yazısına taşıdım.

passwordAlanı
Şifreyi açıktan yazmak istemiyorsak Jasypt (Java Simplified Encryption)  kullanılabilir

testWhileIdle Alanı
Örnek
Şöyle yaparız
# ==============================================================
# = Keep the connection alive if idle for a long time (needed in production)
# ==============================================================
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

Hiç yorum yok:

Yorum Gönder