如何在Spring中加载资源并将其内容用作字符串

2022-08-31 13:40:33

如何加载Spring资源内容并使用它来设置bean属性或将其作为参数构造函数传递?

资源包含自由文本。


答案 1

在一行中,尝试读取测试.xml:

String msg = StreamUtils.copyToString( new ClassPathResource("test.xml").getInputStream(), Charset.defaultCharset()  );

答案 2
<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。

@Parvez建议的另一种解决方案,没有Apache Commons IO依赖性

<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>

推荐