Автор оригинала: Donato Rimenti.
1. введение
В этом кратком руководстве будет показано, как создать простой RSS-канал с помощью Spring MVC и класса AbstractRssFeedView .
После этого мы также реализуем простой REST API – для предоставления нашего канала по проводу.
2. RSS-канал
Прежде чем перейти к деталям реализации, давайте сделаем краткий обзор того, что такое RSS и как он работает.
RSS-это тип веб-канала, который легко позволяет пользователю отслеживать обновления с веб-сайта. Кроме того, RSS-каналы основаны на XML-файле, который суммирует содержимое сайта. Агрегатор новостей может затем подписаться на один или несколько каналов и отображать обновления, регулярно проверяя, изменился ли XML.
3. Зависимости
Прежде всего, поскольку поддержка RSS Spring основана на римской платформе , нам нужно будет добавить ее в качестве зависимости к вашему pom , прежде чем мы сможем ее использовать:
com.rometools rome 1.10.0
Для получения путеводителя по Риму ознакомьтесь с нашей предыдущей статьей .
4. Реализация корма
Далее мы собираемся построить фактическую подачу. Для этого мы расширим класс AbstractRssFeedView и реализуем два его метода.
Первый получит Канал объект в качестве входных данных и заполнит его метаданными канала.
Другой вернет список элементов, который представляет содержимое ленты :
@Component public class RssFeedView extends AbstractRssFeedView { @Override protected void buildFeedMetadata(Mapmodel, Channel feed, HttpServletRequest request) { feed.setTitle("Baeldung RSS Feed"); feed.setDescription("Learn how to program in Java"); feed.setLink("http://www.baeldung.com"); } @Override protected List - buildFeedItems(Map
model, HttpServletRequest request, HttpServletResponse response) { Item entryOne = new Item(); entryOne.setTitle("JUnit 5 @Test Annotation"); entryOne.setAuthor("[email protected]"); entryOne.setLink("http://www.baeldung.com/junit-5-test-annotation"); entryOne.setPubDate(Date.from(Instant.parse("2017-12-19T00:00:00Z"))); return Arrays.asList(entryOne); } }
5. Разоблачение корма
Наконец, мы собираемся создать простой сервис REST, чтобы сделать наш канал доступным в Интернете . Служба вернет объект представления, который мы только что создали:
@RestController public class RssFeedController { @Autowired private RssFeedView view; @GetMapping("/rss") public View getFeed() { return view; } }
Кроме того, поскольку мы используем Spring Boot для запуска нашего приложения, мы реализуем простой класс запуска:
@SpringBootApplication public class RssFeedApplication { public static void main(final String[] args) { SpringApplication.run(RssFeedApplication.class, args); } }
После запуска нашего приложения при выполнении запроса к нашему сервису мы увидим следующую RSS-ленту:
Baeldung RSS Feed http://www.baeldung.comLearn how to program in Java JUnit 5 @Test Annotation http://www.baeldung.com/junit-5-test-annotationTue, 19 Dec 2017 00:00:00 GMT [email protected]
6. Заключение
В этой статье рассказывалось о том, как создать простой RSS-канал с помощью Spring и ROME и сделать его доступным для потребителей с помощью веб-сервиса.
В нашем примере мы использовали Spring Boot для запуска нашего приложения. Для получения более подробной информации по этой теме продолжайте читать эту вводную статью о Spring Boot .
Как всегда, весь используемый код доступен на GitHub .