public class MovieProfile {
public static final String CSV_MODE = "csv_mode";
public static final String XML_MODE = "xml_mode";
// 생성자 차단
private MovieProfile () {}
}
먼저 위와 같이 상수들을 담는 클래스 만들어 준다.
단지 상수만을 담는 용도이기 때문에 생성자를 막아둔다.
@Profile(MovieProfile.CSV_MODE)
@Repository
public class CsvMovieReader {
// ... 이하 생략
}
@Profile(MovieProfile.CSV_MODE)
@Repository
public class XMLMovieReader {
// ... 이하 생략
}
위와 같이 @Profile 애노테이션을 통해 프로파일을 설정할 수 있다.
@ActiveProfiles(MovieProfile.CSV_MODE)
public class test {
// ... 이하 생략
}
위와 같이 @ActiveProfiles(MovieProfile.CSV_MODE) 을 통해서 프로파일을 지정할 수 있다.
또한 JVM Arguments 를 -Dspring.profiles.active=csv_mode 로 넘겨줌 으로써 프로파일을 지정할 수 있다.
private final Environment env;
movieReader.serMetadata(env.getProperty("movie.metadata"));
@Value("${movie.metadata}")
public void setMetadata(String metadata) {
this.metadata = metadata;
}