configuração automática springBoot-springmvc

1. Análise de função simples

1.1 Acesso de recurso estático:

No passado, quando usávamos ssm como uma estrutura para desenvolver projetos da web, podíamos colocar recursos estáticos sob o webapp. Quando acessamos, podemos acessar diretamente nossos recursos estáticos, mas nossa estrutura springboot é um projeto jar e não tem um Webapp Directory, então exploramos onde os recursos estáticos do springboot são colocados

  • Recursos estáticos podem ser colocados em:
  1. / diretório estático
  2. / diretório público
  3. / diretório de recursos
  4. / META-INF / resources
    Enquanto os recursos estáticos colocados nestes diretórios, podemos usar diretamente: o
    caminho raiz do projeto atual / + nome do recurso estático pode ser acessado

Princípio:
O pedido de / ** será interceptado. Quando o pedido chegar, verifique primeiro se o nosso Controlador pode tratá-lo. Se puder, será processado diretamente. Se não puder ser processado, todos os pedidos serão entregues para o processador de recurso estático. Se o processador de recurso estático também não for compatível, então 404

Altere o caminho do recurso estático padrão

#修改静态资源的访问路径,此时的访问路径为:
#项目根路径/+static-path-pattern+/静态资源名访问
spring:
  mvc:
    static-path-pattern: /res/**

#这个也是spring下的,修改默认的静态资源目录,此时静态资源就
#不能放在上边默认的四个目录中了,只能放在我们修改后的haha目录下
  resources:
    static-locations: [classpath:/haha/]
  • Outra forma (webjars) não é mais usada agora

Como usar webjars:
1. Vá para: www.webjars.org para encontrar as coordenadas maven do recurso estático que queremos importar
2. Importe no arquivo pom.xml
3. Baixe o recurso estático para o projeto
4. Acesse: Caminho da raiz do projeto / + webjars / + Caminho do pacote dependente
Este método geralmente não é usado

1.2 Visita padrão da página inicial

Springboot configurou o método de acesso à página inicial para nós. Basta colocar nossa página inicial (o nome deve terminar com index.html \ index) no diretório de recursos estáticos. O Springboot encontrará automaticamente index.html como nossa página inicial, só precisamos visitar o caminho da raiz do projeto, a página inicial aparece

  1. Definir índice, html

Basta colocar index.html no diretório de recurso estático.
Você pode definir o diretório de recurso estático padrão, mas não pode configurar o prefixo do caminho de acesso do recurso estático, porque o springboot subjacente já escreveu o caminho de solicitação para receber / ** para nos.

  1. Definir índice

Configure um mapeamento em um controlador que pode ser mapeado para indexar, que pode ser usado como um processador para ir para a página inicial

Favicon personalizado

favicon.ico pode ser colocado no diretório de recursos estáticos. O diretório de recursos estáticos padrão pode ser definido, mas o prefixo do caminho de acesso dos recursos estáticos não pode ser configurado. A solicitação enviada pela recepção também é sem prefixo.

Caminho de estilo REST de envio de formulário

Sabemos que o servlter suporta métodos de solicitação de formato GET \ POST \ DELETE \ PUT por padrão, e nosso estilo de descanso apenas corresponde a esses métodos e faz operações diferentes. No entanto, por padrão, springboot só permite o envio de formulário de get e post, e as solicitações de exclusão e colocação são canceladas.

Solução:

  1. No formulário que submetemos, se você usar get e post, ele será usado normalmente. Se você usar delete e put, o método do formulário deve ser post e, em seguida, crie um campo oculto no formulário, o nome é ' _método ', valor As'delete \ put'.
  2. Ative a função restante do formulário de envio de página do springboot.
    Você pode usar os métodos de exclusão e colocação no estilo rest.

Envie o código na recepção

<form action="/user" method="get">
    <input value="get提交" type="submit">
</form>
<form action="/user" method="post">
    <input value="post提交" type="submit">
</form>
<!--这里的method必须为post-->
<form action="/user" method="post">
	<!--添加一个隐藏域-->
    <input type="hidden" name="_method" value="delete">
    <input value="delete提交" type="submit">
</form>
<form action="/user" method="post">
    <input type="hidden" name="_method" value="put">
    <input value="put提交" type="submit">
</form>

Arquivo de configuração:

#开启页面表单的Rest功能
spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true

Princípio de descanso (quando o formulário é enviado usando REST)

• enviar o formulário = PUT trará _method
• solicitação sobre o HiddenHttpMethodFilter interceptado PUT.DELETE.PATCH
é o nosso formulário de solicitação enviado com um homem chamado '_method = xxx' é, springboot obtido
ao aceitar esta solicitação, será HiddenHttpMethodFilter interceptar, acesso a _metodo os
parametros, e a seguir uso o modo de empacotamento, posta do jeito nosso pedido original, substitui o meu
caminho no valor do seu _metodo, pode usar o controlador xxx em nosso mapa.
Nota: Você deve habilitar manualmente a função rest do springboot, caso contrário, ela não pode ser usada e a solicitação de postagem será usada por padrão (porque nossa solicitação original é uma solicitação de postagem).

Descanse usando as ferramentas do cliente

Por exemplo, PostMan envia Put, delete e outros métodos diretamente sem Filter.

springboot recebe parâmetros

1.1 Anotação

  • @PathVariable, adequado para parâmetros de transferência de estilo de repouso
    Insira a descrição da imagem aqui

  • @RequestHeader, adequado para receber informações de cabeçalho de solicitação
    Insira a descrição da imagem aqui

  • @RequestParam, adequado para receber parâmetros comuns passados
    Insira a descrição da imagem aqui

  • @MatrixVariable, receber variável de matriz

Variável de matriz: Sintaxe: Caminho de solicitação: / cars / sell; low = 34; marca = byd, audi, yd
; os parâmetros após o número são todos os parâmetros que são transportados. O
padrão SpringBoot para desativar a função de
variáveis de matriz . As variáveis ​​de matriz devem têm variáveis ​​de caminho de URL. Para serem analisadas, devem ser usadas em conjunto com o resto

Insira a descrição da imagem aqui
Configure a função de variável de matriz de springboot:

@Configuration
public class MyConfig implements WebMvcConfigurer {
    
    

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
    
    
        //获取到UrlPathHelper
        UrlPathHelper urlPathHelper=new UrlPathHelper();
        //把:删除路径中;后面的值去除掉变为false
        //为true,就变为下面的:
        //例如:localhost:8080/car;id=1/sall  ->  localhost:8080/car/sall
        urlPathHelper.setRemoveSemicolonContent(false);
        configurer.setUrlPathHelper(urlPathHelper);
    }
}
  • @CookieValue, receba parâmetros de cookies

Assim como o ssm, pegue o cookie, escreva e você pode usá-lo

  • @RequestBody recebe parâmetros do corpo da solicitação

Geralmente usado em solicitações de postagem, os parâmetros da solicitação de postagem estarão no corpo da solicitação. Este método pode ser usado para obter o conteúdo do corpo da solicitação.
Nota: Envie o formulário por correio, e os dados no corpo da solicitação estão na forma de 'chave = valor & chave1 = valor ...', usar essa anotação é para obter todo o conteúdo do corpo da solicitação.

1.2 servlet api:

  • WebRequest 、
  • ServletRequest
  • MultipartRequest 、
  • HttpSessionInputStream 、
  • Leitor

Alguns dos parâmetros acima ServletRequestMethodArgumentResolver

1.3 Parâmetros complexos:

  • Mapa,
  • Modelo (os dados no mapa e o modelo serão colocados em request.setAttribute da solicitação),
  • Erros / BindingResult 、
  • RedirectAttributes (o redirecionamento transporta dados),
  • ServletResponse (resposta)

1.4 Tipo personalizado:

Contanto que nossos parâmetros sejam consistentes com os atributos de nossa classe de tipo personalizado, eles serão automaticamente encapsulados em nossa classe personalizada. Também podemos realizar o encapsulamento em cascata (os parâmetros de passagem front-end também devem ser colocados em cascata. Por exemplo: pet under user Valor de passagem do objeto. Pet.name está bem)

## Por enquanto, vou aprender mais tarde e fazer anotações

Acho que você gosta

Origin blog.csdn.net/weixin_43431123/article/details/112852803
Recomendado
Clasificación