The legacy Spring Security OAuth Project includes support for implementing all of the three roles involved in OAuth: Client, Resource Server and Authorization Server. However, that project is now deprecated and to be maintained only for a limited time until not later than may 2022.
The new OAuth 2 project (https://github.com/spring-projects-experimental/spring-authorization-server) which is part of Spring Security 5 is already available but not fully developed as yet. A client and a resource server are already available. However, the authorization server project is not completed as of december 2020.
Client applications can be split into two categories:
Authorization code and Client credentials are the most common grant types. Implicit flow and Password grant are two other grant types of Oauth 2 which are now deprecated. There are now two additional possible grant types which can be relevant in some types of applications: PKCE Enhanced authorization code and Device code. Note that PKCE stands for Proof Key for Code Exchange.
Here are five different types of applications with their relevant grant types:
Finally, Refresh Token is an additional Grant Type where a refresh token is exchanged for an access token.