O Spring Boot personaliza o Spring MVC

O Spring Boot abandona os arquivos de configuração xml tradicionais e configura as configurações relacionadas na forma de JavaBean por meio de classes de configuração (classes marcadas com @Configuration, que são equivalentes a um arquivo de configuração xml).

A configuração automática do Spring MVC do Spring Boot pode atender a maioria das nossas necessidades, mas também podemos personalizar a configuração do Spring MVC personalizando a classe de configuração (classe marcada como @Configuration) e implementando a interface WebMvcConfigurer, como interceptores, formatadores, controladores de exibição e muito mais .
SpringBoot 1.5 e antes customizavam a configuração do Spring MVC herdando a classe abstrata WebMvcConfigurerAdapter, mas depois do SpringBoot 2.0, a classe abstrata WebMvcConfigurerAdapter foi preterida e, em vez disso, implementou a interface WebMvcConfigurer para personalizar a configuração do Spring MvVC.

WebMvcConfigurer é uma interface baseada em Java 8 que define muitos métodos relacionados ao Spring MVC, a maioria dos quais são do tipo padrão e são todas implementações vazias. Portanto, precisamos apenas definir uma classe de configuração para implementar a interface WebMvcConfigurer e reescrever os métodos correspondentes para personalizar a configuração do Spring MVC.
insira a descrição da imagem aqui

No projeto Spring Boot, podemos personalizar o Spring MVC nas duas formas a seguir:

Estendendo o Spring MVC
para assumir totalmente o Spring MVC

Abaixo, apresentamos essas duas formas de customização do Spring MVC, respectivamente.
Estendendo o Spring MVC
Se a configuração automática do Spring MVC do Spring Boot não puder atender às nossas necessidades, também podemos personalizar uma classe de configuração do tipo WebMvcConfigurer (implementando a interface WebMvcConfigurer) (rotulada @Configuration, mas não classe de anotação @EnableWebMvc), para estender o Spring MVC. Isso não apenas manterá a configuração automática do Spring Boot do Spring MVC, aproveitará a conveniência trazida pela configuração automática do Spring Boot, mas também adicionará a configuração personalizada do Spring MVC.
Exemplo 1

  1. Crie um projeto Spring Boot chamado spring-boot-adminex e mova os diretórios css, fonts, images e js e os recursos estáticos no sistema de gerenciamento de segundo plano AdminEx para src/main/resources/static do projeto. mostrado abaixo.
    insira a descrição da imagem aqui

  2. No pacote net.biancheng.www.config, crie uma classe de configuração chamada MyMvcConfig e implemente a interface WebMvcConfigurer, reescreva o método addViewControllers(), o código é o seguinte.
    package net.biancheng.www.config;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.*;
    // Implemente a interface WebMvcConfigurer para estender as funções do SpringMVC
    //@ EnableWebMvc Don't take over SpringMVC
    @Configuration
    public class MyMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry Registry) { //Ao acessar "/" ou "/index.html", pule diretamente para a página inicial Registry.addViewController( "/ ").setViewName("login"); Registry.addViewController("/index.html").setViewName("login"); } }






  3. Crie um controlador chamado IndexController em net.biancheng.www.controller, o código é o seguinte.
    pacote net.biancheng.www.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web .bind.annotation.RequestMapping;
    @Controller
    public class IndexController { /**

    • Ir para a página de destino
    • @return
      */
      @GetMapping(value = {“/login”})
      public String loginPage() { //Ir para a página de login login.html return “login”; } }



  4. Mova o login.html (página de login) no AdminEx para src/main/resources/templates, a estrutura é a mostrada abaixo.
    insira a descrição da imagem aqui

Figura 2: login.html

  1. Inicie o Spring Boot, você descobrirá que "http://localhost:8080/login", "http://localhost:8080/" e "http://localhost:8080/index.html" podem pular para a página inicial login.html, o resultado é o mostrado abaixo.
    insira a descrição da imagem aqui

Figura 3: A página inicial (clique na imagem para ver a imagem original)
para assumir totalmente o Spring MVC
Em alguns casos especiais, podemos precisar abandonar toda a configuração automática do Spring MVC pelo Spring Boot e assumir completamente o Spring MVC. Neste ponto, podemos personalizar uma classe de configuração do tipo WebMvcConfigurer (implementando a interface WebMvcConfigurer) e marcar a anotação @EnableWebMvc nesta classe para assumir completamente o Spring MVC.

Nota: Depois que o Spring MVC for completamente assumido, a configuração automática do Spring MVC do Spring Boot será inválida.
Exemplo 2

  1. Marque @EnableWebMvc na classe de configuração MyMvcConfig e não faça alterações em outros arquivos, o código é o seguinte.
    package net.biancheng.www.config;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.*;
    // Implemente a interface WebMvcConfigurer para estender a funcionalidade do SpringMVC
    @EnableWebMvc / / Assumir completamente SpringMVC
    @Configuration
    public class MyMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry Registry) { //Ao acessar "/" ou "/index.html", pule diretamente para a página inicial Registry.addViewController("/ ").setViewName("login"); Registry.addViewController("/index.html").setViewName("login"); } }






  2. Inicie o Spring Boot, digite "http://localhost:8080/" na barra de endereços do navegador para acessar a página de login, o resultado é o mostrado na figura abaixo.
    insira a descrição da imagem aqui

A página de login após assumir totalmente o controle do Spring mvc
Figura 4: Assumir totalmente o controle do Spring MVC para acessar a página de login

  1. Digite "http://localhost:8080/css/style.css" na barra de endereço do navegador para acessar a folha de estilo CSS referenciada em login.html, e o resultado é o mostrado na figura abaixo.
    insira a descrição da imagem aqui

Controle total da falha do recurso estático do Spring mvc
Figura 2: Controle total do acesso do Spring MVC aos recursos estáticos

Sabemos que o Spring Boot pode acessar arquivos estáticos localizados na pasta de recursos estáticos, que é definida na configuração automática padrão do Spring MVC do Spring MVC. os recursos estáticos na pasta de recursos estáticos relatarão um erro 404.

Acho que você gosta

Origin blog.csdn.net/weixin_64842782/article/details/125106786
Recomendado
Clasificación