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;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)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.name=myNameGoodÇ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 {
    //...
}Şöyle yaparız.
@PropertySource("file:${MDHIS_HOME}/config.properties")Şö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;
  }
}$ cat /etc/foo/application.properties 
socmess.user="testuser"
socmess.pass="testpass" 
Hiç yorum yok:
Yorum Gönder