Para testar o controlador isoladamente, temos @WebmvcTest disponível no teste de inicialização do Spring. Ele configuraria apenas a classe do controlador e nenhuma dependência para ela. Da mesma forma para a camada jpa temos @DatajpaTest
Existe algo semelhante para beans de serviço?
Basta testá-los na unidade, sem necessidade de contexto de primavera.
DataJpa e SpringWeb são PARTES do Spring, portanto você precisa inicializá-lo para ter testes confiáveis que incluam todos os comportamentos do Spring na equação
A camada de serviço, por outro lado, são apenas POJOs, portanto, os testes unitários são os mais fáceis e diretos de todos.
PS. apenas não use injeção de campo, mas via construtor e/ou setters e você ficará bem.