porque sempre que eu faço uma alteração no meu codigo eu preciso reiniciar o servidor do spring manualmente?
ele nao consegue ver que teve alteração e fazer sozinho?
Quando você roda e sobe o servidor do springboot, você cria uma versão empacotada do teu projeto. Este servidor (uma versão do tomcat, capado) recebe este pacote e roda com o que está ali. Toda e qualquer alteração feita após isso não estará empacotada, logo, não será perceptível ao servidor. Obrigando a reiniciar o mesmo.
Isso ocorre por que o java é compilado e não interpretado (ok, ok, não vamos polemizar), como o php ou mesmo o nodejs (javascript).
Ah, detalhe, você está achando ruim ter que reiniciar o springboot, provavelmente jamais teve que fazer isso num Websphere 6 ou 6.5, que levava 10 minutos só para baixar e mais ou menos 20 a 25 minutos para subir.
aproveitando o topico, gostaria de tirar uma duvida simples.
Eu nao estou conseguindo importar a annotation @RestController utilizando o codigo import org.springframework.web.bind.annotation.RestController
ele so deixa da seguinte maneira @org.springframework.web.bind.annotation.RestController
porque isso?
Isso é meio estranho, normalmente a necessidade de definir o nome completo de uma classe/interface/enum/anotação se deve ao fato de você não ter definido sua importação.
Tentou inserir manualmente?
a annotation estava tendo conflito com o nome da minha classe kkkkkkkkk, resolvi alterando o nome da classe. obrigado
Este é outro motivo pelo qual isso ocorre.
Levantando esse post para perguntar: Existe algo que sobe o servidor a cada mudança? Lembro que tinha algo que dava para fazer com o DevTools nesse sentido, só não lembro o que.
Tem sim, é só adicionar a dependência do devTools que o spring gerencia toda a parte de reiniciar o servidor automaticamente a cada alteração salva.
Pra quem usa o STS só a dependência já resolve, pra quem usa o IntelliJ além da dependência é preciso
habilitar essa opção nas configurações do projeto dentro da IDE.