diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml
index 05b2eb49b6..595e58f5f3 100644
--- a/spring-mvc-simple/pom.xml
+++ b/spring-mvc-simple/pom.xml
@@ -30,6 +30,7 @@
5.0.2
5.0.2
1.0.2
+ 1.9.0
@@ -115,6 +116,11 @@
${junit.jupiter.version}
test
+
+ com.rometools
+ rome
+ ${rome.version}
+
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java
new file mode 100644
index 0000000000..cfbd33cd57
--- /dev/null
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java
@@ -0,0 +1,54 @@
+package com.baeldung.spring.controller.rss;
+
+import com.rometools.rome.feed.rss.Channel;
+import com.rometools.rome.feed.rss.Description;
+import com.rometools.rome.feed.rss.Item;
+import org.springframework.stereotype.Service;
+import org.springframework.web.servlet.view.feed.AbstractRssFeedView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Service("articleFeedView")
+public class ArticleFeedView extends AbstractRssFeedView {
+
+ protected Channel newFeed() {
+ Channel channel = new Channel("rss_2.0");
+ channel.setLink("http://localhost:8080/spring-mvc-simple/rss");
+ channel.setTitle("Article Feed");
+ channel.setDescription("Article Feed Description");
+ channel.setPubDate(new Date());
+ return channel;
+ }
+
+ @Override
+ protected List- buildFeedItems(Map map, HttpServletRequest httpStRequest, HttpServletResponse httpStResponse) throws Exception {
+ List list = new ArrayList
- ();
+
+ Item item1 = new Item();
+ item1.setLink("http://www.baeldung.com/netty-exception-handling");
+ item1.setTitle("Exceptions in Netty");
+ Description description1 = new Description();
+ description1.setValue("In this quick article, we’ll be looking at exception handling in Netty.");
+ item1.setDescription(description1);
+ item1.setPubDate(new Date());
+ item1.setAuthor("Carlos");
+
+ Item item2 = new Item();
+ item2.setLink("http://www.baeldung.com/cockroachdb-java");
+ item2.setTitle("Guide to CockroachDB in Java");
+ Description description2 = new Description();
+ description2.setValue("This tutorial is an introductory guide to using CockroachDB with Java.");
+ item2.setDescription(description2);
+ item2.setPubDate(new Date());
+ item2.setAuthor("Baeldung");
+
+ list.add(item1);
+ list.add(item2);
+ return list;
+ }
+}
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java
new file mode 100644
index 0000000000..1f51b238ac
--- /dev/null
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java
@@ -0,0 +1,14 @@
+package com.baeldung.spring.controller.rss;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@Controller
+public class ArticleRssController {
+
+ @GetMapping(value = "/rss", produces = "application/*")
+ public String articleFeed() {
+ return "articleFeedView";
+ }
+
+}