Giriş
Şu satırı dahil ederiz.
Sınıftaki değişkenlere değer atamak için 3 yol var
1. Değişken @Value anotasyonu ile işaretlenir
2. Sınıfa Environment nesnesi @Autowired edilir. Daha sonra bu nesneden istediğimiz değerleri alırız.
3. Sınıf @ConfigurationProperties olarak işaretlenir. Bu durumda POJO olarak okunur. Tüm alanlar private yapılır ve getter()/setter() metodlar tanımlanır.
factory Alanı
Bu sınıf normalde yml uzantılı dosyaları okumuyor. Yml dosyalarını okutmak için şöyle yaparız.
Dosyanın yolunu belirtir.
Örnek - classpath'teki Properties Dosyası
Elimizde şöyle bir sınıf olsun
Çoklu dosya kullanmak için şöyle yaparız. Bu kullanım yerine @PropertySources anotasyonu da kullanılabilir.
Şöyle yaparız.
Şöyle yaparız.
Şu satırı dahil ederiz.
import org.springframework.context.annotation.PropertySource;
Bu anotasyon ile application.properties dosyasından farklı bir ".properties" uzantılı dosyaları otomatik olarak sınıftaki değişkenlere atamak mümkün.Sınıftaki değişkenlere değer atamak için 3 yol var
1. Değişken @Value anotasyonu ile işaretlenir
2. Sınıfa Environment nesnesi @Autowired edilir. Daha sonra bu nesneden istediğimiz değerleri alırız.
3. Sınıf @ConfigurationProperties olarak işaretlenir. Bu durumda POJO olarak okunur. Tüm alanlar private yapılır ve getter()/setter() metodlar tanımlanır.
factory Alanı
Bu sınıf normalde yml uzantılı dosyaları okumuyor. Yml dosyalarını okutmak için şöyle yaparız.
@PropertySource("classpath:/routing.yml", factory = YamlPropertyLoaderFactory.class)
value AlanıDosyanın yolunu belirtir.
Örnek - classpath'teki Properties Dosyası
Elimizde şöyle bir sınıf olsun
@Component
@Configuration
@ConfigurationProperties("test")
@PropertySource("classpath:test.properties")
public class DemoProperties {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
test.properties şöyle olsuntest.name=myNameGood
Örnek - classpath'teki Properties DosyasıÇoklu dosya kullanmak için şöyle yaparız. Bu kullanım yerine @PropertySources anotasyonu da kullanılabilir.
@PropertySource("classpath:foo.properties")
@PropertySource("classpath:bar.properties")
public class PropertiesWithJavaConfig {
//...
}
Örnek - fileŞöyle yaparız.
@PropertySource("file:${MDHIS_HOME}/config.properties")
Örnek - fileŞöyle yaparız.
@Configuration
@PropertySource("file:/etc/foo/application.properties")
public class Config
{
@Autowired
private Environment env;
@Bean
public static PropertySourcesPlaceholderConfigurer configurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Value("${socmess.pass}")
private String pass;
public String getUser() {
return env.getProperty("socmess.user");
}
public String getPass() {
return pass;
}
}
Dosyanın içi şöyledir$ cat /etc/foo/application.properties
socmess.user="testuser"
socmess.pass="testpass"
Hiç yorum yok:
Yorum Gönder