Aproveitando que estamos falando sobre a separação de responsabilidades, vamos fazer mais algumas modificações para deixar o código mais organizado e mais fácil de ser mantido. Do mesmo jeito que separamos uma pasta para os respositórios, vamos separar uma pasta para os controladores. Crie uma nova pasta chamada controller
e mova o ProductController
para dentro dela. A medida que a aplicação vai crescendo, novos controladores e novos respositórios são necessários, logo é interessante separar essas classes em pacotes diferentes.
Do mesmo jeito que novos controladores e respositórios são necessários, novas páginas html também são. Até agora criamos todas os arquivos html na mesma pasta templates
, você já deve ter percebido que se quisermos criar uma nova lista de categorias por exemplo, teríamos que criar um arquivo list-categories.html
na mesma pasta. Isso não é muito legal, pois a pasta templates
vai ficando cada vez mais cheia. Para resolver esse problema, vamos criar uma pasta para cada entidade da aplicação. Crie uma pasta chamada product
dentro da pasta templates
e mova todos os arquivos html relacionados a produtos para dentro dela. Sua estrutura deve ficar similar a mostrada abaixo.
Por fim, como alteramos a localização dos arquivos html, precisamos refatorar o código no controlador que carrega os arquivos de visão. Acesse o arquivo ProductController
e para cada método que retorne uma visão, adicione o trecho product/
para avisar o Thymeleaf que os arquivos html estão dentro da pasta product
. O código abaixo mostra um exemplo.
Terminada as alterações, acesse a aplicação e verifique se tudo está funcionando corretamente.