Olá, Igor! Tudo bem?
O que está acontecendo é o seguinte: não houve mudança nas regras do Spring em relação a injetar a classe de serviço (@Service) dentro do controlador (@Controller), isso continua sendo a forma correta de organizar a arquitetura (Controller chama Service, Service chama Repository, etc.).
O aviso que você está vendo no IntelliJ não é um erro, mas sim uma boa prática recomendada pelas versões mais recentes do Spring e do próprio IntelliJ:
O @Autowired em campo (field injection) ainda funciona, mas não é recomendado.
A forma recomendada atualmente é a injeção de dependência através do construtor (constructor injection).
Exemplo:
@RestController
@RequestMapping("/categories")
public class CategoryController {
private final CategoryService service;
// O Spring injeta automaticamente sem precisar de @Autowired
public CategoryController(CategoryService service) {
this.service = service;
}
}
Espero ter ajudado e bons estudos!