[SPRING] Spring : classpath 자원을위한 URL 삽입
SPRINGSpring : classpath 자원을위한 URL 삽입
Bean의 Spring에 대한 종속성을 생성하지 않는 방식으로 클래스 경로 리소스의 URL을 삽입하려고합니다. 즉, 빈은 Spring의 인터페이스 / 클래스를 사용하면 안된다. 어떻게해야합니까?
해결법
-
==============================
1.Spring은 classpath : ... 값을 암시 적으로 java.net.URL로 변환 할 수있다.
Spring은 classpath : ... 값을 암시 적으로 java.net.URL로 변환 할 수있다.
public class Foo { private URL url; ... }
.
<bean class = "Foo"> <property name = "url" value = "classpath:..." /> </bean>
-
==============================
2.axtavt의 대답에 이어 빈에서 Spring 주석을 허용한다면 다음과 같이 할 수있다.
axtavt의 대답에 이어 빈에서 Spring 주석을 허용한다면 다음과 같이 할 수있다.
@Value("classpath:myClasspathLocation") private URL url;
-
==============================
3.MyClasspathResource와 같이 org.springframework.core.io.ClassPathResource를 확장하여 Spring 리소스의 구현을 직접 작성하면 ClassPathResource가 확장되어이 유형을 Bean에 삽입 할 수있다. 이렇게하면 봄에 의존 할 필요가 없으며 나중에 다른 것으로 리소스를 재 구현할 수 있습니다.
MyClasspathResource와 같이 org.springframework.core.io.ClassPathResource를 확장하여 Spring 리소스의 구현을 직접 작성하면 ClassPathResource가 확장되어이 유형을 Bean에 삽입 할 수있다. 이렇게하면 봄에 의존 할 필요가 없으며 나중에 다른 것으로 리소스를 재 구현할 수 있습니다.
<bean class="myBean"> <property name="classPathType"> <bean class="org.test.bla.MyClasspathResource"> <constructor-arg index="0" value="classpath:/org/test/bla/MyUrl" /> </bean> </property> </bean>
-
==============================
4.Spring의 자원 개념과 동일한 비 스프링은 거의 없습니다.
Spring의 자원 개념과 동일한 비 스프링은 거의 없습니다.
예를 들어 구아바의 InputSupplier를 대안으로 사용할 수도 있지만 그렇게하면 강력한 표준 스프링 기능이 누락됩니다.
from https://stackoverflow.com/questions/4578402/spring-inject-url-for-classpath-resource by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring에서 문자열 배열을 빈에 삽입 (0) | 2019.04.16 |
---|---|
[SPRING] 스프링 밸리데이션을 수동으로 트리거하는 방법은 무엇입니까? (0) | 2019.04.16 |
[SPRING] Spring REST 컨트롤러를 테스트 할 때 @AuthenticationPrincipal 삽입 (0) | 2019.04.16 |
[SPRING] @ComponentScan을 Spring의 테스트 특정 컨텍스트 구성과 함께 사용하는 방법 Junit4 TestRunner? (0) | 2019.04.16 |
[SPRING] 스프링 부트 obfuscator (0) | 2019.04.16 |