지난번에 Java기반 Configuration을 하는 방법을 포스팅 했다. 하지만 여기에 추가로 properties 파일에 있는 값이 필요할 때가 있을 수도 있다. 예를 들면 다음 사진에서 security-jwt-token-secret-key 값이나 security-jwt-token-expire-length가 필요할 수 있다.
1. @PropertySource와 Environment
@PropertySource 어노테이션과 Environment 객체를 이용해서 properties 파일에 있는 값을 사용할 수 있다.
// Java-based Configuration을 하기 위한 클래스로 지정
// application.properties 파일을 활용하기 위한 설정 추가
@Configuration
@PropertySource("classpath:application.properties")
public class PropertySourceConfig {
private final Environment env;
public PropertySourceConfig(Environment env) {
this.env = env;
}
// application.properties의 security-jwt-token-secret-key 값을 활용하여 JwtTokenKeyProvider를 빈으로 등록
@Bean
public JwtTokenKeyProvider jwtTokenKeyProvider() {
return new JwtTokenKeyProvider(env.getProperty("security-jwt-token-secret-key"));
}
}
@PropertySource의 괄호 안에는 properties 파일이 있는 경로를 적어주면 된다.
@PropertySource("classpath:application.properties")
@PropertySource 어노테이션을 사용해서 Properties 파일을 등록하면, 스프링은 이 파일의 내용을 읽어서 Environment 객체에 넣어준다.
private final Environment env;
그러면 Environment의 getProperty 메서드를 통해 Environment 객체에 등록된 프로퍼티 값을 참조할 수 있다.
// application.properties의 security-jwt-token-secret-key 값을 활용하여 JwtTokenKeyProvider를 빈으로 등록
@Bean
public JwtTokenKeyProvider jwtTokenKeyProvider() {
return new JwtTokenKeyProvider(env.getProperty("security-jwt-token-secret-key"));
}
2. @PropertySource와 @Value
@PropertySource와 @Value를 이용해서도 properties 파일에 있는 값을 사용할 수 있다.
// Java-based Configuration을 하기 위한 클래스로 지정
// application.properties 파일을 활용하기 위한 설정 추가
@Configuration
@PropertySource("classpath:application.properties")
public class PropertySourceConfig {
// application.properties의 security-jwt-token-secret-key 값을 활용하여 JwtTokenKeyProvider를 빈으로 등록
@Bean
public JwtTokenKeyProvider jwtTokenKeyProvider(@Value("${security-jwt-token-secret-key}") String value) {
return new JwtTokenKeyProvider(value);
}
}
@Value("${...}") 형태로 사용할 수 있다. {} 안에 프로퍼티 키 이름을 넣어주었다.
@Value("${security-jwt-token-secret-key}")
'프로그래밍 > JAVA Spring' 카테고리의 다른 글
Servlet과 DispatcherServlet (0) | 2023.09.25 |
---|---|
[Spring 스프링] 스프링은 뭐지? 왜 스프링을 쓸까? (1) | 2023.07.02 |
[Spring 스프링] Java기반 Configuration (0) | 2023.05.15 |
[Spring 스프링] xml기반 Configuration (0) | 2023.05.15 |
[Spring 스프링] HandlerMethodArgumentResolver 알아보기 (0) | 2023.05.08 |