Deprecate "feed" and "document" view packages

Prior to this commit, Spring Framework would ship several abstract
`*View` implementations for rendering PDF, RSS or XLS documents using
well-known libraries. More recently, supporting libraries evolved a lot
with new versions and forks. Spring Framework is not in a position to
efficiently support all variants within the project.

This commit deprecates the relevant classes. Instead, libraries can
reuse existing code and ship optional support for Spring directly.
Often, updating imports and library usage is enough.
As an alternative, applications can decide to perform rendering
direclty in web handlers.

Closes gh-35451
This commit is contained in:
Brian Clozel
2025-10-15 16:36:24 +02:00
parent 2e4ca41382
commit e6481a011b
13 changed files with 39 additions and 0 deletions
@@ -4,10 +4,14 @@
Spring offers ways to return output other than HTML, including PDF and Excel spreadsheets.
This section describes how to use those features.
WARNING: As of Spring Framework 7.0, view classes in the `org.springframework.web.servlet.view.document`
package are deprecated. Instead, libraries can adapt this existing code to provide support with their own `*View` types.
As an alternative, applications can perform direct rendering in web handlers.
[[mvc-view-document-intro]]
== Introduction to Document Views
An HTML page is not always the best way for the user to view the model output,
and Spring makes it simple to generate a PDF document or an Excel spreadsheet
dynamically from the model data. The document is the view and is streamed from the
@@ -1,6 +1,10 @@
[[mvc-view-feeds]]
= RSS and Atom
WARNING: As of Spring Framework 7.0, view classes in the `org.springframework.web.servlet.view.feed`
package are deprecated. Instead, libraries can adapt this existing code to provide support with their own `*View` types.
As an alternative, applications can perform direct rendering in web handlers.
Both `AbstractAtomFeedView` and `AbstractRssFeedView` inherit from the
`AbstractFeedView` base class and are used to provide Atom and RSS Feed views, respectively. They
are based on https://rometools.github.io/rome/[ROME] project and are located in the