Spring @PropertySource Notasyonu Kullanımı
Merhaba arkadaşlar,
@PropertySource notasyonu ile herhangibir property dosyasındaki bilgileri okuyabiliriz. Küçük bir örnek ile başlayalım senaryomuz şöyle olsun veritabanı bağlantısı yapan bir sınıfımız olsun veritabanı bağlantı bilgilerini property dosyasından çektiğimizi varsayalım.
ilk önce Spring kütüphanemizi ekleyelim projemize
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.7.RELEASE</version> </dependency> </dependencies> <modelVersion>4.0.0</modelVersion> <groupId>resources</groupId> <artifactId>turkishh</artifactId> <version>0.0.1-SNAPSHOT</version> </project> |
Şimdide Spring’i konfigrasyon sınıfı yazalım .
ProjectConf.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package io.bilisim; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; @Configuration @PropertySource("classpath:dbConnection.properties") public class ProjectConf { @Autowired Environment environment; @Bean public DbConnection dbConnectionConf() { String dbUrl = environment.getProperty("db.url"); String dbName = environment.getProperty("db.name"); String dbUserName = environment.getProperty("db.username"); String dbPassword = environment.getProperty("db.password"); System.out.println(dbUrl+" | " +dbName +" | " + dbUserName+" | " + dbPassword + "| hedefe bağlantı kurulacaktır."); return new DbConnectionImpl(dbUrl); } } |
Güya veritabanı bağlantısı yapan sınıflarımızı tanımlayalım ?
DbConnectionImpl.java ve DbConnection.java
1 2 3 4 5 6 7 8 9 10 11 12 |
package io.bilisim; public class DbConnectionImpl implements DbConnection{ public DbConnectionImpl(String url){ System.out.println(url + " bağlantı kuruldu."); } } |
1 2 3 4 5 6 7 8 9 10 11 |
package io.bilisim public interface DbConnection { } |
ve bakalım okuyormu property dosyamızı onu test etmek için bir sınıf yazalım.
ProjectTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package io.bilisim; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.AbstractApplicationContext; public class ProjectTest { public static void main(String[] args) { AbstractApplicationContext context = new AnnotationConfigApplicationContext(ProjectConf.class); } } |
Çalıştırdığımız zaman çıktımız şu şekilde olması lazımdır .
Bu şekilde projemize propety dosyalarını enjekte edebiliriz.
İyi Çalışmalar ?