Las anotaciones más utilizadas en Spring Boot

1. Lista de anotaciones

@SpringBootApplication:  Contiene las 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.

El  escaneo de componentes @ComponentScan 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 indica 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.

2. Explicación detallada de las anotaciones

@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.

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 generalmente se usa 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 generalmente la El método debe anotarse con @RequestMapping.

Código de muestra:

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

    @RequestMapping("/hello")
    public String hello(Map<String,Object> 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 puntales), una colección de @ResponseBody y @Controller.

Código de muestra:

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. Si encuentra que se aplican clases de configuración automática específicas que no desea, puede deshabilitarlas utilizando el atributo de exclusión de la anotación @EnableAutoConfiguration.

@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 @Configuration.

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

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

@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 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  métodos con @Bean es equivalente a beans configurados 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;

@Component: se  refiere a componentes en general. Podemos usar esta anotación para anotar cuando los componentes no se clasifican fácilmente.

@Bean:  Equivalente a XML, colocado encima del método, no de la clase, lo que significa que Spring genera y gestiona un bean.

@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 miembros de clase, métodos y constructores para completar el 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, anotación JPA

@Entity:  @Table (name = ""):  Indica que esta es una clase de entidad. Generalmente usado en 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 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 la clave principal 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):  nombre es el nombre de la secuencia para usar, 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 cuando la serialización json, la serialización y la deserialización se ven afectadas.

@JoinColumn (name = ”loginId”):  One-to-one: 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, soluciones relacionadas con SpringMVC

@RequestMapping:  @RequestMapping ("/ ruta") significa que el controlador procesa todas las solicitudes de URL para "/ 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) para procesar la solicitud, como application / json, text / html;
  • produce: especifica el tipo de contenido que se devolverá y devuelve solo cuando el tipo (Aceptar) en el encabezado de la solicitud contiene el tipo especificado

@RequestParam: se utiliza  delante de los parámetros del método.

@RequestParam String a = request.getParameter ("a")。

@PathVariable:  Variable de ruta. 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 utiliza  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/baidu_39322753/article/details/104657960
Recomendado
Clasificación