Uso de anotaciones de springboot

1. Lista de anotaciones

@SpringBootApplication :

Contiene anotaciones @ComponentScan, @Configuration y @EnableAutoConfiguration.

Entre ellos, @ComponentScan permite que Spring Boot escanee la clase Configuración y la agregue al contexto del programa.

@Configuration es  equivalente al archivo de configuración XML de Spring; el código Java se puede usar para verificar la seguridad de los tipos.

** @ EnableAutoConfiguration ** Configuración automática.

** @ ComponentScan ** El escaneo de componentes puede descubrir y ensamblar automáticamente algunos beans.

@Component  se puede usar con CommandLineRunner para realizar algunas tareas básicas después de que se inicia el programa.

La  anotación @RestController es una colección de @Controller y @ResponseBody, lo que significa que este es un bean controlador, y el valor de retorno de la función se completa directamente en el cuerpo de respuesta HTTP, que es un controlador de estilo REST.

@Autowired se  importa automáticamente.

@PathVariable  obtiene los parámetros.

@JsonBackReference  resuelve el problema de los enlaces externos anidados.

@RepositoryRestResourcepublic se usa  junto con spring-boot-starter-data-rest.

Dos, anotaciones (anotaciones) explicación detallada

@SpringBootApplication : Declare que Spring Boot configurará automáticamente el programa según sea necesario. Esta configuración es equivalente a: @Configuration, @EnableAutoConfiguration y @ComponentScan tres configuraciones.

package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@ResponseBody : indica que el resultado de retorno de este método se escribe directamente en el cuerpo de la respuesta HTTP, que generalmente se usa cuando se obtienen datos de forma asincrónica, y se usa para construir una API RESTful.

Después de usar @RequestMapping, el valor devuelto generalmente se analiza como una ruta de salto. Después de agregar @responsebody, el resultado devuelto no se analizará como una ruta de salto, sino que se escribirá directamente en el cuerpo de la respuesta HTTP.

Por ejemplo, para obtener datos json de forma asincrónica, después de agregar @responsebody, los datos json se devolverán directamente.

Esta anotación se usa generalmente junto con @RequestMapping. Código de muestra:

@RequestMapping(“/test”)
@ResponseBody
public String test(){
    return”ok”;
}

@Controller : se utiliza para definir la clase del controlador. En el proyecto de primavera, el controlador es responsable de reenviar la solicitud de URL enviada por el usuario a la interfaz de servicio correspondiente (capa de servicio)

Generalmente, esta anotación está en la clase y, por lo general, el método necesita cooperar con la anotación @RequestMapping.

Código de muestra:

@Controller
@RequestMapping(“/demoInfo”)
publicclass DemoController {
    @Autowired
    private DemoInfoService demoInfoService;

    @RequestMapping("/hello")
    public String hello(Map map){
        System.out.println("DemoController.hello()");
        map.put("hello","from TemplateController.helloHtml");
        //会使用hello.html或者hello.ftl模板进行渲染显示.
        return"/hello";
    }
}

@RestController : se utiliza para anotar componentes de la capa de control (como acciones en struts), una colección de @ResponseBody y @Controller.

Código de muestra:

package com.kfit.demo.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(“/demoInfo2”)
publicclass DemoController2 {

    @RequestMapping("/test")
    public String test(){
        return"ok";
    }
}

@RequestMapping : proporciona información de enrutamiento, responsable de la asignación de URL a funciones específicas en el controlador.

@EnableAutoConfiguration : Configuración automática de Spring Boot: intente configurar automáticamente su aplicación Spring en función de las dependencias de jar que agregue.

Por ejemplo, si HSQLDB existe en su classpath y no ha configurado manualmente ningún bean de conexión de base de datos, configuraremos automáticamente una base de datos en memoria ".

Puede agregar anotaciones @EnableAutoConfiguration o @SpringBootApplication a una clase @Configuration para seleccionar la configuración automática.

Busque el número vertical público: MarkerHub , siga la respuesta [  vue  ] para obtener el tutorial de introducción del front y back end.

Si encuentra que se aplican clases de configuración automática específicas que no desea, puede usar el atributo de exclusión de la anotación @EnableAutoConfiguration para deshabilitarlas.

@ComponentScan : indica que esta clase descubre automáticamente los componentes de escaneo.

La comprensión personal es equivalente a eso si busca clases anotadas con @Component, @Controller, @Service, etc., y las registra como Beans, puede recopilar automáticamente todos los componentes de Spring, incluidas las clases de @Configuration.

A menudo usamos la anotación @ComponentScan para buscar beans e importarlos en combinación con la anotación @Autowired. Todos los componentes de Spring se pueden recopilar automáticamente, incluidas las clases @Configuration.

Si no hay configuración, Spring Boot escaneará el paquete donde se encuentra la clase de inicio y las clases anotadas con @Service, @Repository y otros subpaquetes.

@Configuration : Es equivalente al archivo de configuración xml tradicional. Si algunas bibliotecas de terceros necesitan usar el archivo xml, se recomienda seguir usando la clase @Configuration como la clase de configuración principal del proyecto; puede usar el @ Anotación ImportResource para cargar el archivo de configuración xml.

@Import : se utiliza para importar otras clases de configuración.

@ImportResource : se utiliza para cargar el archivo de configuración xml.

@Autowired : importa automáticamente beans dependientes

@Service : generalmente se usa para decorar los componentes de la capa de servicio

@Repository : El uso de la anotación @Repository puede garantizar que DAO o los repositorios proporcionen una traducción de excepción. La DAO o la clase de repositorios modificada por esta anotación serán descubiertas y configuradas por ComponetScan, y no es necesario proporcionar elementos de configuración XML para ellos.

@Bean : Anotar un método con @Bean es equivalente al bean configurado en XML.

@Value : inyecta el valor de la propiedad configurada en Spring boot application.properties. Código de muestra:

@Value(value = “#{message}”)
private String message;

@Inject : Equivalente al @Autowired predeterminado, pero no hay ningún atributo obligatorio;

@Componente : Se refiere al componente en general, cuando el componente no está bien clasificado podemos usar esta anotación para marcarlo.

@Bean : es equivalente a XML, colocado encima del método, no de la clase, lo que significa que un bean es generado y administrado por Spring.

@AutoWired : Importa automáticamente beans dependientes. método byType. Utilice el Bean configurado para completar el ensamblaje de atributos y métodos. Puede anotar variables de miembro de clase, métodos y constructores para completar el trabajo de ensamblaje automático. Cuando se agrega (required = false), no se informará ningún error incluso si no se encuentra el bean.

@Qualifier : cuando hay varios beans del mismo tipo, puede usar @Qualifier ("nombre") para especificar. Se utiliza junto con @Autowired. El descriptor calificado de @Qualifier no solo se puede inyectar de acuerdo con el nombre, sino que también se puede usar para un control más detallado sobre cómo seleccionar candidatos. El uso específico es el siguiente:

@Autowired
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;

@Resource (name = ”name”, type = ”type”): Si no hay contenido entre paréntesis, el valor predeterminado es byName. Haz cosas similares con @Autowired.

Tres, anotaciones JPA

@Entity : @Table (name = ""): Indica que esta es una clase de entidad. Generalmente usado para jpa Estas dos anotaciones generalmente se usan juntas, pero si el nombre de la tabla y el nombre de la clase de entidad son iguales, se puede omitir @Table

@MappedSuperClass : se utiliza para determinar la entidad que es la clase principal. Las propiedades de la clase padre pueden ser heredadas por subclases.

@NoRepositoryBean : Generalmente se usa como el repositorio de la clase padre. Con esta anotación, Spring no creará una instancia del repositorio.

@Column : si el nombre del campo es el mismo que el de la columna, se puede omitir.

@Id : indica que el atributo es la clave principal.

@GeneratedValue (estrategia = GenerationType.SEQUENCE, generator = "repair_seq"): indica que la estrategia de generación de clave primaria es la secuencia (puede ser Auto, IDENTITY, native, etc., Auto significa que se puede cambiar entre múltiples bases de datos), y el nombre de la secuencia especificada es repair_seq.

@SequenceGeneretor (name = "repair_seq", sequenceName = "seq_repair", deploymentSize = 1): name es el nombre de la secuencia para un uso fácil, sequenceName es el nombre de secuencia de la base de datos y los dos nombres pueden ser iguales.

@Transient : indica que este atributo no es una asignación a un campo de la tabla de la base de datos y el marco ORM ignorará este atributo.

Si un atributo no es un mapeo de campo de la tabla de la base de datos, debe marcarse como @Transient; de lo contrario, el marco ORM predetermina su anotación como @Basic. @Basic (fetch = FetchType.LAZY): la etiqueta puede especificar el método de carga de los atributos de la entidad

@JsonIgnore : la función es ignorar algunas propiedades en el bean Java durante la serialización json, y tanto la serialización como la deserialización se ven afectadas.

@JoinColumn (name = ”loginId”): Uno a uno: una clave externa en esta tabla que apunta a otra tabla. Uno a muchos: otra tabla apunta a la clave externa de esta tabla.

@OneToOne, @OneToMany, @ManyToOne : Corresponde a uno a uno, uno a muchos y muchos a uno en el archivo de configuración de hibernación.

Cuatro, anotaciones relacionadas con springMVC

@RequestMapping : @RequestMapping ("/ ruta") significa que el controlador maneja todas las solicitudes de URL de "/ ruta".

RequestMapping es una anotación que se usa para procesar la asignación de direcciones de solicitud, que se puede usar en clases o métodos.

Usado en clases, significa que todos los métodos de la clase que responden a solicitudes usan esta dirección como ruta principal. La anotación tiene seis atributos:

params : especifica que ciertos valores de parámetros deben incluirse en la solicitud antes de que se procese el método.

encabezados : la solicitud especificada debe contener ciertos valores de encabezado especificados para que el método procese la solicitud.

valor : especifique la dirección real de la solicitud, la dirección especificada puede estar en el modo de plantilla URI

método : especifique el tipo de método de la solicitud, GET, POST, PUT, DELETE, etc.

consume : especifique el tipo de contenido (Content-Type) del contenido enviado para procesar la solicitud, como application / json, text / html;

produce : especifica el tipo de contenido que se devolverá, y solo devuelve si el tipo especificado se incluye en el tipo (Aceptar) en el encabezado de la solicitud

@RequestParam : se utiliza delante de los parámetros del método.
@RequestParam
String a = request.getParameter ("a").

@PathVariable : variable de ruta. Tal como

RequestMapping(“user/get/mac/{macAddress}”)
public String getByMacAddress(@PathVariable String macAddress){
    //do something;
}

El parámetro debe ser el mismo que el nombre entre llaves.

Cinco, manejo de excepciones globales

@ControllerAdvice : contiene @Component. Puede escanearse. Maneje las excepciones de manera uniforme.

@ExceptionHandler (Exception.class): se usa en el método para indicar que el siguiente método se ejecutará cuando se encuentre esta excepción.

Supongo que te gusta

Origin blog.csdn.net/qq_39809613/article/details/108049484
Recomendado
Clasificación