반응형
Spring .properties 파일 : 요소를 배열로 가져 오기
.properties
다음과 같이 Spring을 사용하여 파일 에서 속성 속성을로드 하고 있습니다.
file: elements.properties
base.module.elementToSearch=1
base.module.elementToSearch=2
base.module.elementToSearch=3
base.module.elementToSearch=4
base.module.elementToSearch=5
base.module.elementToSearch=6
스프링 XML 파일
file: myapplication.xml
<bean id="some"
class="com.some.Class">
<property name="property" value="#{base.module.elementToSearch}" />
</bean>
그리고 내 Class.java
file: Class.java
public void setProperty(final List<Integer> elements){
this.elements = elements;
}
그러나 디버깅 할 때 매개 변수 요소는 목록의 마지막 요소 만 가져 오므로 6 개의 요소가있는 목록 대신 값이 "6"인 한 요소의 목록이 있습니다.
값만 추가하는 것과 같은 다른 접근 방식을 시도했지만 #{base.module}
속성 파일에서 매개 변수를 찾지 못했습니다.
해결 방법은 다음과 같이 쉼표로 구분 된 목록을 elements.properties 파일에 포함하는 것입니다.
base.module.elementToSearch=1,2,3,4,5,6
문자열로 사용하고 구문 분석하지만 더 나은 솔루션이 있습니까?
다음과 같이 속성 파일에 배열을 정의하면
base.module.elementToSearch=1,2,3,4,5,6
다음과 같이 Java 클래스에서 이러한 배열을로드 할 수 있습니다.
@Value("${base.module.elementToSearch}")
private String[] elementToSearch;
그리고 쉼표가 아닌 다른 구분 기호를 사용하는 경우에도 사용할 수 있습니다.
@Value("#{'${my.config.values}'.split(',')}")
private String[] myValues; // could also be a List<String>
과
응용 프로그램 속성에서
my.config.values=value1, value2, value3
다음은 Spring 4.0 이상에서 수행 할 수있는 방법의 예입니다.
application.properties
함유량:
some.key=yes,no,cancel
자바 코드 :
@Autowire
private Environment env;
...
String[] springRocks = env.getProperty("some.key", String[].class);
참고 URL : https://stackoverflow.com/questions/6212898/spring-properties-file-get-element-as-an-array
반응형
'development' 카테고리의 다른 글
MySQL에서 엔진별로 테이블 표시 (0) | 2020.10.11 |
---|---|
PostgreSQL, "오늘"을 기준으로 날짜 확인 (0) | 2020.10.11 |
셀러리 수신 미등록 작업 유형 (예제 실행) (0) | 2020.10.11 |
'use utf8;'사용 (0) | 2020.10.11 |
MySQL-구조는 같지만 데이터가 다른 여러 테이블에서 데이터 선택 (0) | 2020.10.11 |