Estou fazendo esse projeto, baseado em spring boot e o que estou vendo na prática é como é difícil na prática desacoplar tudo do framework. A parte da JPA, e Spring Data consegui desacoplar, mas a camada de aplicação e de de controller fica difícil. Annotations como @Service, @Transactional, @RestController e principalmente Bean Validations (ex: @CPF) é bem complicado. Parece que as injeções de dependência precisam ser feitas via @Bean e não ter essas anotations diretamente nas classes.
Vcs tem um projeto de exemplo onde existe Controllers e envio e recebimento de mensagens de forma desacoplada?