반응형
SPRING properties 값 다른 위치에서 불러오기
개발하다보면 공통 CONFIG 파일들은 따로 빼줘야 편한 경우들이 있다..
아래와 같이 설정 파일이 있다고 가정
예제 properties (or yml configuration)
properties
app.name="Sample Application"
app.version=0.0.1-SNAPSHOT
app.base-key=myKey
yml
app:
name: Sample Application
version: 0.0.1-SNAPSHOT
base-key: myKey
사용 방법 4가지 공유하니 그 중에 찍먹하면 된다
1. @Value
어노테이션을 이용하여 변수에 직접 할당하는 방법
@Named
public class MyClass {
@Value("${app.name}")
private String appName;
@Value("${app.version}")
private String appVersion;
@Value("${app.base-key}")
private String appBaseKey;
public void myMethod() {
System.out.println(String.format("appName : %s", appName));
System.out.println(String.format("appVersion : %s", appVersion));
System.out.println(String.format("appBaseKey : %s", appBaseKey));
}
}
2. @ConfigurationProperties
어노테이션을 사용하여 Bean 으로 매핑.
@Data
@Named
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private String version;
private String baseKey;
}
@Named
public class MyClass {
@Inject
private AppConfig appConfig;
public void myMethod() {
System.out.println(String.format("appName : %s", appConfig.getName()));
System.out.println(String.format("appVersion : %s", appConfig.getVersion()));
System.out.println(String.format("appBaseKey : %s", appCOnfig.getBaseKey()));
}
}
3. Configuration 에서 @ConfigurationProperties
어노테이션을 사용하여 Bean 으로 매핑.
@Data
public class AppConfig {
private String name;
private String version;
private String baseKey;
}
@Configuration
public class MyConfig {
@Bean
@ConfigurationProperties(prefix = "app")
public AppConfig appConfig() {
return new AppConfig();
}
}
@Named
public class MyClass {
@Inject
private AppConfig appConfig;
public void myMethod() {
System.out.println(String.format("appName : %s", appConfig.getName()));
System.out.println(String.format("appVersion : %s", appConfig.getVersion()));
System.out.println(String.format("appBaseKey : %s", appCOnfig.getBaseKey()));
}
}
4. Environment
를 주입받아 property key
로 직접 획득.
@Named
public class MyClass {
@Inject
private Environment environment;
public void myMethod() {
System.out.println(String.format("appName : %s", environment.getProperty("app.name")));
System.out.println(String.format("appVersion : %s", environment.getProperty("app.version")));
System.out.println(String.format("appBaseKey : %s", environment.getProperty("app.base-key")));
}
}
반응형
'[SPRING] > SPRING' 카테고리의 다른 글
application.properties 파일 여러개 나눠서 이용하기 (0) | 2022.06.09 |
---|---|
Index 256 out of bounds for length 256 에러 (0) | 2022.06.08 |
[Class to Java] 클래스 파일 자바 변환(디컴파일) (0) | 2022.02.07 |
[Spring Boot] 커스텀 에러페이지 설정 (0) | 2022.01.25 |
스프링 빠르게 로그파일 만들기 (+로그파일 위치 컨피그 파일로 빼기) (0) | 2022.01.17 |