복붙노트

[SPRING] 봄에 주석으로 와일드 카드를 사용하여 리소스 목록으로 파일을 주입

SPRING

봄에 주석으로 와일드 카드를 사용하여 리소스 목록으로 파일을 주입

스프링 콩으로 사용하는 클래스가 있습니다. bean은 다음과 같이 applicationContext.xml에 정의됩니다.

<bean id="myClass" class="com.example.MyClass">
        <property name="cssFiles" value="classpath*:../../cssDir/*.css"/>
</bean>

MyClass는 다음과 같습니다.

...
import org.springframework.core.io.Resource;
...
public class MyClass {
    private List<Resource> cssFiles;

    // methods etc.
}

그래서 Spring은 cssFiles 필드에 "classpath * : ../../ cssDir /"아래에 확장자가 .css 인 모든 파일을 채 웁니다.

이제 전체 주석 구성으로 이동하고 있지만 주석을 사용하여 동일한 작업을 수행 할 수는 없습니다. 이 작동하지 않습니다.

...
import org.springframework.core.io.Resource;
...
@Component
public class MyClass {
    @Value("classpath*:../../cssDir/*.css")
    private List<Resource> cssFiles;

    // methods etc.
}

너는 어떤 생각을 가지고 있니?

해결법

  1. ==============================

    1.목록 대신 배열을 사용하려는 경우 다음을 시도하십시오.

    목록 대신 배열을 사용하려는 경우 다음을 시도하십시오.

    @Value("classpath*:../../cssDir/*.css")
    private Resource[] cssFiles;
    
  2. ==============================

    2.application.properties (yml) 접근 방식의 경우 : \ t

    application.properties (yml) 접근 방식의 경우 : \ t

    someFiles=file:/some/path/*.someExtension
    
  3. from https://stackoverflow.com/questions/24738402/inject-files-as-list-of-resources-using-wildcard-by-annotations-in-spring by cc-by-sa and MIT license