programing

Spring에서 속성의 문자열 배열을 바인딩하는 방법은 무엇입니까?

minimums 2023. 9. 5. 20:04
반응형

Spring에서 속성의 문자열 배열을 바인딩하는 방법은 무엇입니까?

application.properties 파일에 다음이 있습니다.

some.server.url[0]=http://url
some.server.url[1]=http://otherUrl

@Bean 메서드 내에서 @Value 주석을 사용하여 속성 배열을 어떻게 참조합니까?

Tomcat 7과 Spring boot 1.4에서 Java 6을 사용하고 있습니다.

저도 당신이 말한 것과 같은 문제를 겪고 있었고 인덱스 폼을 사용하는 것은 저에게도 효과가 없었던 것 같습니다.

그 문제를 해결하기 위해 아래와 같은 일을 했습니다.

some.server.url = url1, url2

그런 다음 내가 단순히 사용하는 속성을 얻기 위해

@Value("${some.server.url}")
private String[] urls ;

스프링은 쉼표문자열을 자동으로 분할하고 배열을 반환합니다.AFAIK 이것은 에 소개되었습니다.Spring 4+

분리기를 원하지 않는다면 아래와 같이 SpEL을 사용해야 합니다.

@Value("#{'${some.server.url}'.split(',')}")
private List<String> urls;

여기서 구분자를 사용할 수 있습니다.

컬렉션을 사용할 수 있습니다.

@Value("${some.server.url}")
private List<String> urls;

구성 클래스를 사용하여 다른 클래스에 빈을 주입할 수도 있습니다.

@Component
@ConfigurationProperties("some.server")
public class SomeConfiguration {
    private List<String> url;

    public List<String> getUrl() {
        return url;
    }

    public void setUrl(List<String> url) {
        this.url = url;
    }
}

다음 단계를 수행합니다.

@값("${some.server.url})" 개인 목록 URL;

@구성 속성("some.server") 공용 클래스 일부 구성 {

인스턴스 변수 'urls'에 대한 getter 및 setter가 있어야 합니다.

언급URL : https://stackoverflow.com/questions/38986127/how-to-bind-a-string-array-of-properties-in-spring

반응형