Um programador pode encontrar vários algoritmos em sua vida, mas sempre há alguns algoritmos que um programador definitivamente encontrará e precisará dominar com alta probabilidade. Vamos falar sobre esses algoritmos muito importantes “must catch!” hoje ~
I. Introdução
Entre os desenvolvedores do Springboot, os mais comuns são Controlador, Serviço, Mapeador e Entidade. Agora cada camada usa anotações para modificar classes ou objetos. As anotações comuns são: @RestController @RequestMapping @Autowired @ApiOperation @PostMapping @RequestBody @Service @Transactional @Repository @TableName @Data Portanto, essas anotações encapsulam esses algoritmos.
Dois: Introdução aos Algoritmos Comuns
@RestController
@RestController
Nota, equivalente a@ResponseBody
+@Controller
使用@RestController批注对控制器类进行注释, 不再需要将@ResponseBody添加到所有请求映射方法中。@ResponseBody注释默认处于活动状态。
说明它同时拥有这2注解的功能,@Controller注解表示后,该类将会被spring管理,@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型。所以这里我们return map的时候,可以直接输出JSON数据。当然@RestController注解属于springmvc的,并不属于springboot的。
@RequestMapping
Use @RequestMapping para mapear solicitações no Spring MVC, que especifica quais solicitações de URL o controlador pode manipular, o que equivale a configurar em web.xml no Servlet
@AutowiredEle pode marcar variáveis, métodos e construtores de membros da classe e permitir que o Spring conclua o trabalho de montagem automática do bean.
@ApiOperationUsado para construir documentos API, @ApiOperation(value = "descrição da interface", httpMethod = "método de solicitação de interface", resposta = "
tipo de parâmetro de retorno da interface", notas = "descrição da versão da interface"
@PostMappingPor ser uma anotação composta, o framework Spring 4.3 introduziu uma variante da anotação @RequestMapping para representar melhor a semântica do método anotado, como um atalho para @RequestMapping(method = RequestMethod.POST). Ou seja, pode ser simplificado para @PostMapping(value="/abc" ), principalmente pela comodidade de memorização.
@RequestBody@RequestBody é usado principalmente para receber os dados na string json passada do front-end para o backend (dados no corpo da solicitação); e o corpo da solicitação mais comumente usado para passar parâmetros é, sem dúvida, a solicitação POST, portanto, ao usar @RequestBody para receber dados, geralmente enviados por POST. No mesmo método de recebimento do backend, @RequestBody e @RequestParam() podem ser usados ao mesmo tempo, @RequestBody pode ter no máximo um e @RequestParam() pode ter vários.
Uma solicitação possui apenas um RequestBody; uma solicitação pode ter vários RequestParams.
@ServiçoA anotação @Service é usada na classe para marcar a classe atual como uma classe de serviço. Adicionar esta anotação injetará automaticamente a classe atual no contêiner Spring e não há necessidade de definir beans no arquivo applicationContext.xml.
@TransacionalA anotação @Transactional é uma anotação fornecida pela estrutura Spring para gerenciamento de transações declarativas. Pode ser aplicado a métodos ou classes para identificar métodos ou classes que requerem gerenciamento de transações. Ao usar a anotação @Transactional, podemos gerenciar transações de forma mais conveniente e garantir consistência e confiabilidade dos dados. Antes de apresentar a anotação @Transactional, vamos primeiro entender o conceito básico de transações. As transações têm quatro propriedades básicas: atomicidade, consistência, isolamento e durabilidade.
@Repositório@Repository é uma anotação Spring usada para declarar um Bean.
@Nome da tabela@TableName é uma anotação no mybatis-plus, principalmente para implementar o mapeamento entre tipos de entidades e tabelas no banco de dados.
@DadosA principal função da anotação @Data é melhorar a simplicidade do código. Usar esta anotação pode economizar muitos métodos get(), set(), toString() e outros métodos no código;
Três: Resumo do Algoritmo
processo e sequência de inicialização do springboot
Processo de inicialização: inicialize um objeto SpringApplication e execute o método run do objeto.
A primeira parte é o módulo de inicialização do SpringApplication e configura algumas variáveis básicas de ambiente, recursos, construtores e ouvintes.
A segunda parte implementa o esquema de inicialização específico do aplicativo, incluindo o módulo de monitoramento do processo de inicialização, o módulo de ambiente de configuração de carregamento e o módulo de ambiente de contexto de criação principal.
A terceira parte é o módulo de configuração automática. Este módulo serve como núcleo da configuração automática do springboot.A anotação do spring é na verdade a configuração que encapsula o arquivo xml. A anotação pretende ser uma espécie de identificação, uma espécie de marca. Indica que foi configurado.
Lista de anotações
1. @SpringBootApplication: = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan
1.1. @Configuration: Equivalente ao arquivo de configuração XML do spring.
1.2 @EnableAutoConfiguration: Habilita configuração automática (anotação principal).
2. A anotação @RestController é uma coleção de @Controller e @ResponseBody, indicando que este é um bean controlador e é um controlador estilo REST que preenche diretamente o valor de retorno da função no corpo da resposta HTTP.1.4 @Component pode ser usado com CommandLineRunner para executar algumas tarefas básicas após o início do programa.
Formatação de hora na entidade
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;