Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Cache ou WebService

Para conseguir criar um cache ou transformar os métodos de retorno em uma API, vou precisar habilitar as configurações do Spring MVC?

Teria uma outra maneira com Spring Boot ou seria melhor só usar Spring MVC?

3 respostas

Oi Leonardo,

Para utilizar cache no Spring, você precisa habilitar o uso de Cache na aplicação com a anotação @EnableCaching:

@SpringBootApplication
@EnableCaching
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

E então basta marcar os métodos que serão colocados em cache pelo Spring. Por exemplo:

@Repository
public interface ClienteRepository extends JpaRepository<Cliente, Long> {

    @Cacheable("clientesPorNome")
    List<Cliente> findByNome(String nome);
}

Quanto a API, você diz trasnformar em uma API Rest? Caso sim, você pode transformar seu controller em um RestController, recebendo e devolvendo os dados no formato Json, por exemplo.

@RestController
@RequestMapping("/clientes")
class ClienteRestController {

    private final ClienteRepository repository;

    public ClientesRestController(ClienteRepository repository) {
        this.repository = repository;
    }

    @GetMapping
    public List<Cliente> listaTodos() {
        return this.repository.findAll();
    }

    //outros metodos...
}

Nesse caso não precisa de configurações adicionais.

Bons estudos!

Agora entendi, todas as dependência do Spring MVC estão inclusas! Só mais uma coisa, no Spring MVC subo aplicação com o formato .war,sendo necessário subir o servidor antes no Spring boot não é necessário subir o servidor, pois tem o .jar, que executa como uma aplicação Cliente Servidor.

No Spring Boot consigo alterar para .war e consigo utilizar um servidor Windfly ?

solução!

Oi Leonardo,

Por padrão o projeto será um jar, que dentro dele tem o servidor embutido.

Mas é possível sim alterar o projeto para gerar o war tradicional, sem incluir o servidor embutido, e você fazer o deploy em algum servidor.

Para isso, você precisa fazer as seguintes alterações no projeto:

no arquivo pom.xml:

<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

E alterar a classe que tem o Main:

@SpringBootApplication
public class Boot extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Boot.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Boot.class, args);
    }
}

Pronto! Agora você consegue gerar o war pelo maven.

Bons estudos!