반응형
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 파일에 정의된 값을 손쉽게 주입받아서 사용할 수 있습니다.
반응형
'무근본 IT 지식 공유 > 무근본 스프링(Spring Framework)' 카테고리의 다른 글
[무근본 스프링] REST API에서 PATCH 요청이란? - 코드 샘플 (0) | 2023.04.20 |
---|---|
[무근본 스프링] 클라이언트 상호 인증서 방식 사용하기(발급부터 사용까지) (0) | 2023.04.15 |
[무근본 스프링] @transactional 어노테이션에 대해 (예시코드 포함) (0) | 2023.04.15 |
[무근본 스프링(Spring Framework) 공부 - 컴파일 하는 방법 !! (2) - 왕초보도 이해하는 스프링 (0) | 2023.03.27 |
[무근본 스프링(Spring Framework) 공부] 컴파일 하는 방법 !! (1) - 왕초보도 이해하는 스프링 (0) | 2023.03.27 |
댓글