The purpose of end-to-end (E2E) tests is to validate the system from a user's perspective. This includes tests for the main user journeys (e.g., place an order or create a new customer). Compared to integration tests, such tests usually involve the user interface (if there is one).
You can also perform E2E tests against a deployed version of the application on, e.g., a dev or staging environment before proceeding with the production deployment.
For applications that use server-side rendering (e.g., Thymeleaf) or a self-contained systems approach, where the Spring Boot backend serves the frontend, you can use @SpringBootTest for these tests.
As soon as you need to interact with a browser, Selenium is usually the default choice. If you've worked with Selenium for quite some time, you might find yourself implementing the same helper functions over and over. For a better developer experience and fewer headaches when writing tests that involve browser interaction, consider Selenide. Selenide is an abstraction on top of Selenium's low-level API to write stable and concise browser tests.