본문 바로가기
  • _^**_
무근본 IT 지식 공유/무근본 스프링(Spring Framework)

[무근본 스프링] @Value 어노테이션에 대해 (예시 코드 포함)

by 크리드로얄워터 2023. 4. 15.
반응형

Spring에서 @Value 어노테이션에 대해

 

Spring에서 @Value 어노테이션은 스프링 빈으로 등록된 객체에서 properties 파일이나 환경 변수 등의 값을 주입받을 때 사용됩니다. @Value 어노테이션을 사용하면, properties 파일이나 환경 변수 등에 정의된 값을 손쉽게 읽어올 수 있습니다.

예를 들어, 다음과 같은 properties 파일이 있다고 가정해봅시다.

 

database.url=jdbc:mysql://localhost:3306/mydb
database.username=admin
database.password=1234

 

이 properties 파일에 정의된 값을 읽어오기 위해서는, 먼저 Spring의 PropertySourcesPlaceholderConfigurer 빈을 등록해주어야 합니다. 이 빈을 등록하면, @Value 어노테이션에서 ${...} 형태로 properties 파일의 값을 참조할 수 있습니다.

 

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {

  @Bean
  public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    return new PropertySourcesPlaceholderConfigurer();
  }

}

 

위 예제에서는 @PropertySource 어노테이션을 사용하여 properties 파일의 경로를 지정하고, PropertySourcesPlaceholderConfigurer 빈을 등록하였습니다.

이제 @Value 어노테이션을 사용하여 properties 파일에 정의된 값을 주입받을 수 있습니다. 예를 들어, 다음과 같이 DataSource 빈을 구성할 수 있습니다.

 

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {

  @Value("${database.url}")
  private String url;

  @Value("${database.username}")
  private String username;

  @Value("${database.password}")
  private String password;

  @Bean
  public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl(url);
    dataSource.setUsername(username);
    dataSource.setPassword(password);
    return dataSource;
  }

}

 

위 예제에서는 @Value 어노테이션을 사용하여 properties 파일에서 database.url, database.username, database.password 값들을 읽어와서 DataSource 빈을 구성하고 있습니다. 이렇게 하면, properties 파일에 정의된 값을 손쉽게 주입받아서 사용할 수 있습니다.

반응형

댓글