RSS-Feed mit Spring MVC anzeigen

RSS-Feed mit Spring MVC anzeigen

1. Einführung

Dieses kurze Tutorial zeigt, wie Sie mit Spring MVC und derAbstractRssFeedView-Klasse einen einfachen RSS-Feed erstellen.

Anschließend implementieren wir auch eine einfache REST-API, um unseren Feed über das Kabel freizulegen.

2. RSS-Feed

Bevor wir auf die Implementierungsdetails eingehen, lassen Sie uns einen kurzen Überblick darüber geben, was RSS ist und wie es funktioniert.

RSS ist eine Art von Webfeed, mit dem ein Benutzer Aktualisierungen von einer Website auf einfache Weise verfolgen kann. Darüber hinaus kannRSS feeds are based on an XML file which summarizes the content of a site. Ein Nachrichtenaggregator kann einen oder mehrere Feeds abonnieren und die Aktualisierungen anzeigen, indem regelmäßig überprüft wird, ob sich das XML geändert hat.

3. Abhängigkeiten

Erstens, daSpring’s RSS support is based on the ROME framework,we’ll need to add it as a dependency zu unserempom  gehören, bevor wir es tatsächlich verwenden können:


    com.rometools
    rome
    1.10.0

Einen Leitfaden für Rom finden Sie in unserenprevious article.

4. Feed-Implementierung

Als nächstes werden wir den eigentlichen Feed erstellen. Dazu musswe’ll extend the AbstractRssFeedView class and implement two of its methods.

Der erste erhält einChannel-Objekt als Eingabe und füllt es mit den Metadaten des Feeds.

The other will return a list of items which represents the feed’s content:

@Component
public class RssFeedView extends AbstractRssFeedView {

    @Override
    protected void buildFeedMetadata(Map model,
      Channel feed, HttpServletRequest request) {
        feed.setTitle("example RSS Feed");
        feed.setDescription("Learn how to program in Java");
        feed.setLink("http://www.example.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.example.com/junit-5-test-annotation");
        entryOne.setPubDate(Date.from(Instant.parse("2017-12-19T00:00:00Z")));
        return Arrays.asList(entryOne);
    }
}

5. Feed freigeben

Schließlich werden wir einen einfachen REST-Service fürmake our feed available on the web erstellen. Der Service gibt das soeben erstellte Ansichtsobjekt zurück:

@RestController
public class RssFeedController {

    @Autowired
    private RssFeedView view;

    @GetMapping("/rss")
    public View getFeed() {
        return view;
    }
}

Da wir Spring Boot zum Starten unserer Anwendung verwenden, implementieren wir außerdem eine einfache Launcher-Klasse:

@SpringBootApplication
public class RssFeedApplication {
    public static void main(final String[] args) {
        SpringApplication.run(RssFeedApplication.class, args);
    }
}

Nach dem Ausführen unserer Anwendung wird beim Ausführen einer Anfrage an unseren Service der folgende RSS-Feed angezeigt:



    
        example RSS Feed
        http://www.example.com
        Learn how to program in Java
        
            JUnit 5 @Test Annotation
            http://www.example.com/junit-5-test-annotation
            Tue, 19 Dec 2017 00:00:00 GMT
            [email protected]
        
    

6. Fazit

In diesem Artikel wurde beschrieben, wie Sie mit Spring und ROME einen einfachen RSS-Feed erstellen und mithilfe eines Webdienstes für die Verbraucher verfügbar machen.

In unserem Beispiel haben wir Spring Boot verwendet, um unsere Anwendung zu starten. Weitere Informationen zu diesem Thema finden Sie untercontinue reading this introductory article on Spring Boot.

Wie immer ist der gesamte verwendete Codeover on GitHub verfügbar.