[SPRING] 리소스를로드하고 그 내용을 Spring의 문자열로 사용하려면 어떻게해야합니까?
SPRING리소스를로드하고 그 내용을 Spring의 문자열로 사용하려면 어떻게해야합니까?
Spring 리소스 컨텐트를로드하고 bean 속성을 설정하거나 그것을 인수 생성자로 전달하기 위해 어떻게 사용할 수 있습니까?
리소스에 자유 텍스트가 있습니다.
해결법
-
==============================
1.
<bean id="contents" class="org.apache.commons.io.IOUtils" factory-method="toString"> <constructor-arg value="classpath:path/to/resource.txt" type="java.io.InputStream" /> </bean>
이 솔루션에는 Apache Commons IO가 필요합니다.
Apache Commons IO 의존성이없는 @Parvez가 제안한 또 다른 해결책은 다음과 같습니다.
<bean id="contents" class="java.lang.String"> <constructor-arg> <bean class="org.springframework.util.FileCopyUtils" factory-method="copyToByteArray"> <constructor-arg value="classpath:path/to/resource.txt" type="java.io.InputStream" /> </bean> </constructor-arg> </bean>
-
==============================
2.한 줄에 test.xml을 읽어보십시오.
한 줄에 test.xml을 읽어보십시오.
String msg = StreamUtils.copyToString( new ClassPathResource("test.xml").getInputStream(), Charset.defaultCharset() );
-
==============================
3.그냥 읽으십시오.
그냥 읽으십시오.
try { Resource resource = new ClassPathResource(fileLocationInClasspath); BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()),1024); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = br.readLine()) != null) { stringBuilder.append(line).append('\n'); } br.close(); return stringBuilder.toString(); } catch (Exception e) { LOGGER.error(e); }
-
==============================
4.이것은 외부 라이브러리를 사용하지 않고 그것을 수행하는 한 방법입니다. spring.allow.properties 파일에서 제공하는 기본값은 키 값 쌍을 포함합니다 ... $ {key}
이것은 외부 라이브러리를 사용하지 않고 그것을 수행하는 한 방법입니다. spring.allow.properties 파일에서 제공하는 기본값은 키 값 쌍을 포함합니다 ... $ {key}
여기 내 예를 들어, 나는 데이터베이스 소품을 지키고있다.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list value-type="org.springframework.core.io.Resource"> <value>classpath:environment.properties</value> </list> </property> </bean> <bean id="mySQLdataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${JDBC.driver}" /> <property name="url" value="${JDBC.URL}" /> <property name="username" value="${JDBC.username}" /> <property name="password" value="${JDBC.password}" /> </bean>
-
==============================
5.daoway 대답은 매우 유용했으며 Adrian의 말에 따라 daoway 코드와 비슷한 구성 스 니펫을 추가하고 있습니다.
daoway 대답은 매우 유용했으며 Adrian의 말에 따라 daoway 코드와 비슷한 구성 스 니펫을 추가하고 있습니다.
<bean id="contents" class="org.springframework.core.io.ClassPathResource"> <constructor-arg value="path/to/resource.txt"/> </bean>
귀하의 구성 요소로부터
@Autowired private Resource contents; @PostConstruct public void load(){ try { final InputStream inputStream = contents.getInputStream(); //use the stream BufferedReader br = new BufferedReader(new InputStreamReader(inputStream ,1024); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = br.readLine()) != null) { stringBuilder.append(line).append('\n'); } br.close(); }catch (IOException e) { LOGGER.error(message); } }
from https://stackoverflow.com/questions/14022839/how-do-i-load-a-resource-and-use-its-contents-as-a-string-in-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring-context.xml 및 persistence.xml에서 .properties로드 (0) | 2018.12.31 |
---|---|
[SPRING] ServletContext 리소스를 열 수 없습니다. (0) | 2018.12.31 |
[SPRING] 스프링 XmlBeanFactory가 사용되지 않습니다. (0) | 2018.12.31 |
[SPRING] 콩을 열거 형에 넣는다. (0) | 2018.12.31 |
[SPRING] 행이 다른 트랜잭션에 의해 업데이트되거나 삭제되었습니다 (또는 저장되지 않은 값 매핑이 잘못되었습니다). (0) | 2018.12.31 |