반응형
스프링 부트를 사용하여 Java 속성 파일에서 데이터를 읽는 방법
스프링 부트 어플리케이션을 사용하고 있는데 이 어플리케이션의 변수를 읽고 싶다.application.properties
파일입니다. 사실 아래 코드는 그렇게 합니다.하지만 나는 이 대안을 위한 좋은 방법이 있다고 생각한다.
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("config.properties");
prop.load(input);
gMapReportUrl = prop.getProperty("gMapReportUrl");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
...
}
사용할 수 있습니다.@PropertySource
설정을 속성 파일에 외부로 변환합니다.속성을 가져오는 방법은 여러 가지가 있습니다.
1. 다음을 사용하여 필드에 속성 값을 할당합니다.@Value
와 함께PropertySourcesPlaceholderConfigurer
해결하다${}
에@Value
:
@Configuration
@PropertySource("file:config.properties")
public class ApplicationConfiguration {
@Value("${gMapReportUrl}")
private String gMapReportUrl;
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}
2. 다음을 사용하여 속성 값을 가져옵니다.Environment
:
@Configuration
@PropertySource("file:config.properties")
public class ApplicationConfiguration {
@Autowired
private Environment env;
public void foo() {
env.getProperty("gMapReportUrl");
}
}
도움이 되었으면 합니다.
나는 다음 클래스를 만들었다.
Config Utility.java
@Configuration
public class ConfigUtility {
@Autowired
private Environment env;
public String getProperty(String pPropertyKey) {
return env.getProperty(pPropertyKey);
}
}
application.properties 값을 얻기 위해 다음과 같이 호출됩니다.
myclass.myclass.myclass.my
@Autowired
private ConfigUtility configUtil;
public AppResponse getDetails() {
AppResponse response = new AppResponse();
String email = configUtil.getProperty("emailid");
return response;
}
application.properties
emailid=sunny@domain.com
유닛 테스트 완료, 예상대로 동작...
다음과 같은 방법을 제안합니다.
@PropertySource(ignoreResourceNotFound = true, value = "classpath:otherprops.properties")
@Controller
public class ClassA {
@Value("${myName}")
private String name;
@RequestMapping(value = "/xyz")
@ResponseBody
public void getName(){
System.out.println(name);
}
}
여기서 새 속성 파일 이름은 "otherprops.properties"이고 속성 이름은 "myName"입니다.이것은 스프링 부트 버전 1.5.8에서 속성 파일에 액세스하는 가장 간단한 구현입니다.
언급URL : https://stackoverflow.com/questions/38281512/how-to-read-data-from-java-properties-file-using-spring-boot
반응형
'programing' 카테고리의 다른 글
워드프레스에서 현재 로그인한 사용자의 역할을 가져오려면 어떻게 해야 합니까? (0) | 2023.02.20 |
---|---|
AngularJS 코어 vs각도 JS Nuget 패키지? (0) | 2023.02.20 |
요청된 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다.따라서 오리진 '...'은 액세스가 허용되지 않습니다. (0) | 2023.02.20 |
TypeScript에서 Singleton을 정의하는 방법 (0) | 2023.02.20 |
angular.js에서 키 다운 또는 키 누르기 이벤트를 감지하려면 어떻게 해야 합니까? (0) | 2023.02.20 |