diff --git a/spring-static-resources/pom.xml b/spring-static-resources/pom.xml
index f01e807919..84519a37c1 100644
--- a/spring-static-resources/pom.xml
+++ b/spring-static-resources/pom.xml
@@ -140,6 +140,13 @@
handlebars
${handlebars.version}
+
+
+
+ commons-io
+ commons-io
+ ${commons.io.version}
+
org.springframework
@@ -208,6 +215,9 @@
1.5.1
+
+
+ 2.5
\ No newline at end of file
diff --git a/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/LoadResourceConfig.java b/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/LoadResourceConfig.java
new file mode 100644
index 0000000000..32b9ba84d0
--- /dev/null
+++ b/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/LoadResourceConfig.java
@@ -0,0 +1,15 @@
+package com.baeldung.loadresourceasstring;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class LoadResourceConfig {
+
+ @Bean
+ public String resourceString() {
+ return ResourceReader.readFileToString("resource.txt");
+ }
+
+}
diff --git a/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/ResourceReader.java b/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/ResourceReader.java
new file mode 100644
index 0000000000..7bc1babe91
--- /dev/null
+++ b/spring-static-resources/src/main/java/com/baeldung/loadresourceasstring/ResourceReader.java
@@ -0,0 +1,30 @@
+package com.baeldung.loadresourceasstring;
+
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.util.FileCopyUtils;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.UncheckedIOException;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+
+public class ResourceReader {
+
+ public static String readFileToString(String path) {
+ ResourceLoader resourceLoader = new DefaultResourceLoader();
+ Resource resource = resourceLoader.getResource(path);
+ return asString(resource);
+ }
+
+ public static String asString(Resource resource) {
+ try (Reader reader = new InputStreamReader(resource.getInputStream(), UTF_8)) {
+ return FileCopyUtils.copyToString(reader);
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+}
diff --git a/spring-static-resources/src/main/resources/resource.txt b/spring-static-resources/src/main/resources/resource.txt
new file mode 100644
index 0000000000..e78cfa90c2
--- /dev/null
+++ b/spring-static-resources/src/main/resources/resource.txt
@@ -0,0 +1 @@
+This is a resource text file. This file will be loaded as a resource and use its contents as a string.
\ No newline at end of file
diff --git a/spring-static-resources/src/test/java/com/baeldung/loadresourceasstring/LoadResourceAsStringIntegrationTest.java b/spring-static-resources/src/test/java/com/baeldung/loadresourceasstring/LoadResourceAsStringIntegrationTest.java
new file mode 100644
index 0000000000..c16c1a9720
--- /dev/null
+++ b/spring-static-resources/src/test/java/com/baeldung/loadresourceasstring/LoadResourceAsStringIntegrationTest.java
@@ -0,0 +1,57 @@
+package com.baeldung.loadresourceasstring;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.core.io.DefaultResourceLoader;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+import org.springframework.util.FileCopyUtils;
+
+import java.io.InputStreamReader;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.junit.Assert.assertEquals;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = LoadResourceConfig.class)
+public class LoadResourceAsStringIntegrationTest {
+
+ private static final String EXPECTED_RESOURCE_VALUE = "This is a resource text file. This file will be loaded as a " + "resource and use its contents as a string.";
+
+ @Value("#{T(com.baeldung.loadresourceasstring.ResourceReader).readFileToString('classpath:resource.txt')}")
+ private String resourceStringUsingSpel;
+
+ @Autowired
+ @Qualifier("resourceString")
+ private String resourceString;
+
+ @Autowired
+ private ResourceLoader resourceLoader;
+
+ @Test
+ public void givenUsingResourceLoadAndFileCopyUtils_whenConvertingAResourceToAString_thenCorrect() {
+ Resource resource = resourceLoader.getResource("classpath:resource.txt");
+ assertEquals(EXPECTED_RESOURCE_VALUE, ResourceReader.asString(resource));
+ }
+
+ @Test
+ public void givenUsingResourceStringBean_whenConvertingAResourceToAString_thenCorrect() {
+ assertEquals(EXPECTED_RESOURCE_VALUE, resourceString);
+ }
+
+ @Test
+ public void givenUsingSpel_whenConvertingAResourceToAString_thenCorrect() {
+ assertEquals(EXPECTED_RESOURCE_VALUE, resourceStringUsingSpel);
+ }
+
+
+
+
+}