Primavera de arranque Notas: cubo de la familia pase rápido

El curso anotaciones de arranque de la primavera de participar en todo tipo, que se utiliza comúnmente en el proceso de desarrollo y la anotación correspondiente introdujo código de ejemplo. Ayuda a los desarrolladores una, estandarizado, amplio estudio unificado y dominar el uso de las anotaciones Spring Framework.

Primavera de arranque Notas: cubo de la familia pase rápido

 

1, notas de primavera Web MVC y la primavera de frijol

1-1, Spring Web MVC comentario

1-1-1, @ RequestMapping

El objetivo principal es a la solicitud de anotación Web @RequestMapping con el método de asignación de clase petición. Spring MVC y primavera WebFlux son proporcionar apoyo a @RequestMapping anotado por RquestMappingHandlerMapping y RequestMappingHndlerAdapter dos clases.

@RequestMapping método de petición de procesamiento de anotación para el procesamiento de la clase de petición a la marca; @RequestMapping configuración anotación tiene los siguientes seis propiedades:

  • valor: o una URL de solicitud de asignación de alias
  • nombre del método compatible con HTTP: Método
  • params: La presencia filtrada de la solicitud, o un valor de parámetro predeterminado de la HTTP
  • cabecera: la solicitud de acuerdo con HTTP Header filtración presencia, o el valor predeterminado
  • consumir: Configuración de petición HTTP corporal permitió tipos de medios
  • producto: permitir que el tipo de soporte utilizado en el cuerpo de la respuesta HTTP

Nota: Antes de utilizar @RequestMapping, solicitud de procesamiento también requiere el uso de clase @Controller marcada o @RestController

A continuación se presentan dos ejemplos del uso @RequestMapping:

Primavera de arranque Notas: cubo de la familia pase rápido

 

@RequestMapping clase también puede ser etiquetado, el método de valor tal procesamiento de clase cuando el mapeo de la petición de ruta, se ajusta automáticamente la clase @RequestMapping camino antes de procedimiento de correlación de costura, como sigue:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-2, @ RequestBody

lista de parámetros @RequestBody utilizando el método de solicitud de procesamiento, se puede solicitar parámetros unidos a un objeto en el cuerpo, el cuerpo del parámetro de la petición se transmite a través HttpMessageConverter, de acuerdo con la solicitud de parámetros corporales nombres de atributo y nombres de objetos emparejar y valores vinculados. Además, la solicitud puede ser verificada mediante los parámetros corporales @Valid anotación. Aquí está un ejemplo de una utilización @RequestBody:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-3, @ GetMapping

@GetMapping anotación para el procesamiento de HTTP GET petición, y la solicitud se asigna a un método de tratamiento específico. Específicamente, @ GetMapping es una combinación de notas, que es equivalente a un @RequestMapping acceso directo (método = RequestMethod.GET) de. El siguiente ejemplo es utilizar un @GetMapping:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-4, @ PostMapping

@PostMapping anotación para el procesamiento de solicitud HTTP POST, y la solicitud se asigna a un método de tratamiento específico. @PostMapping y @GetMapping simplemente como una combinación de notas, que es equivalente a un @RequestMapping acceso directo (método = HttpMethod.POST) de. Aquí es un ejemplo del uso @PostMapping:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-5, @ PutMapping

@PutMapping anotación para procesar una petición HTTP PUT, y la solicitud se asigna a un método de tratamiento específico, @ PutMapping anotación es una combinación, la @RequestMapping atajo equivalente (método = HttpMethod.PUT) a. Aquí es un ejemplo del uso @PutMapping:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-6, @ DeleteMapping

@DeleteMapping anotación para el procesamiento de HTTP solicitud DELETE y mapea la petición al proceso de borrado. @DeleteMapping anotación es una combinación, que es equivalente a una @RequestMapping acceso directo (método = HttpMethod.DELETE) a. Aquí es un ejemplo del uso @DeleteMapping:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-7, @ PatchMapping

@PatchMapping anotación para el procesamiento de solicitud de parche HTTP y la petición se asigna a un método de procesamiento correspondiente. @PatchMapping @RequestMapping atajo equivalente (método = HttpMethod.PATCH) de. El siguiente es un ejemplo sencillo:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-8、@ControllerAdvice

@ControllerAdvice @Component anotación es una extensión de la anotación, Primavera automáticamente escanea y detecta @ControllerAdvice clases marcados. necesidades @ControllerAdvice y @ ExceptionHandler, @ InitBinder y notas @ModelAttribute con el uso de información se utiliza principalmente para excepciones mango arrojados por el controlador. En primer lugar, es necesario definir un @ControllerAdvice estar marcado clases en la definición de clase de un método de procesamiento de excepción en particular para, usando la etiqueta de anotación @ExceptionHandler. Además, cuando sea necesario, se puede utilizar a nivel mundial @InitBinder dispuesto en la clase, el parámetro vista @ModelAttribute asociado con la configuración también se puede utilizar. @ControllerAdvice anotaciones de uso, puede crear rápidamente un manejo unificado clases, excepción personalizada. El siguiente es un ejemplo de código de @ControllerAdvice:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-9, @ responseBody

@ResponseBody valor de controlador volverá automáticamente se escribe en la respuesta HTTP. En particular, @ responseBody anotación se puede utilizar en la clase @Controller etiqueta de comentario. Si la clase @RestController etiqueta, el método no requiere etiquetado anotaciones @ResponseBody. @RestController @Controller equivalente y combinación @ResponseBody de notas. Este es un ejemplo del uso de la anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-10, @ ExceptionHandler

método anotación @ExceptionHander para el procesamiento de un tipo particular de excepción lanzada para una etiqueta de clase. Cuando el controlador de proceso se produce una excepción, la primavera captura automáticamente anormal, y el método de transmisión de información de anomalía para capturar la @ExceptionHandler anotada. Este es un ejemplo del uso de la anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-11、@ResponseStatus

@ResponseStatus anotación puede solicitar enfoque de etiquetado. El uso de esta anotación, se puede especificar el estado HTTP respuesta deseada. En particular, podemos utilizar las clases de HttpStauts valor de la asignación de propiedad anotados. El siguiente es un ejemplo del uso de anotaciones @ResponseStatus:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-1-12, @ PathVariable

método anotación @PathVariable es unir los parámetros a los variables de la plantilla en la solicitud URI. variables de la plantilla de URI pueden ser especificados por @RequestMapping notas, anotaciones y luego utilice @PathVariable parámetros del método se unen a las variables de la plantilla. En particular, la anotación @ PathVariable nos permite utilizar el atributo de nombre de valor o un alias para el parámetro. El siguiente es un ejemplo de este uso anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

nombres de las variables de plantilla tienen que utilizar el "{}" envuelto, si el nombre del método es consistente con el parámetro de plantilla nombre de la variable URI, se puede omitir en el @PathVariable alias. El siguiente es un ejemplo de una forma abreviada:

Primavera de arranque Notas: cubo de la familia pase rápido

 

Consejo: Si el argumento es un no esenciales, elementos opcionales, se puede establecer requerir = false en el @PathVariable

1-1-13, @ RequestParam

@RequestParam anotación se utiliza para pasar parámetros y los parámetros de la petición Web enlazado método. Uso @RequestParam puede acceder fácilmente a los valores de los parámetros de petición HTTP. El siguiente es un ejemplo de la anotación utilizando el código:

Primavera de arranque Notas: cubo de la familia pase rápido

 

Otras propiedades de la @PathVariable anotación configurado en la misma configuración, en particular, si el parámetro pasado es nulo, un valor por defecto pueden ser establecidos por defaultValue. Código de la muestra es la siguiente:

Primavera de arranque Notas: cubo de la familia pase rápido

 

01/01/14, @ Controller

@Controller es un @Component anotación de extensión, primavera de exploración y configurar automáticamente la categoría de anotaciones está marcado. Esta anotación se utiliza para marcar controlador Spring MVC. El siguiente código de ejemplo se anota con esto:

Primavera de arranque Notas: cubo de la familia pase rápido

 

01/01/15, @ RestController

@RestController ha introducido en Spring 4.0, que es un anotaciones controlador específico. Esta anotación es equivalente al acceso directo @Controller y @ResponseBody. Cuando esta anotación, @ResponseBody anotación no es necesario utilizar el método. El siguiente código de ejemplo se anota con esto:

Primavera de arranque Notas: cubo de la familia pase rápido

 

01/01/16, @ ModelAttribute

Esta anotación se puede acceder a través del nombre de índice modelo ya existe en el modelo de controlador. Aquí es un simple ejemplo de uso de esta anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

Al igual que las notas @PathVariable y @RequestParam, si el nombre del parámetro y el modelo tienen el mismo nombre, no es necesario especificar el nombre del índice, ejemplo abreviado:

Primavera de arranque Notas: cubo de la familia pase rápido

 

En particular, si un método para etiquetar @ModelAttribute, el valor de retorno por resorte se une a la de modelo específico. Ejemplos son los siguientes:

Primavera de arranque Notas: cubo de la familia pase rápido

 

Antes de llamar a un método de tratamiento específico de primavera, todos los métodos están marcados serán ejecutadas notas @ModelAttribute.

01/01/17, @ CrossOrigin

@CrossOrigin solicitud de comentarios o enfoque de clase del controlador de solicitudes para proporcionar apoyo para las llamadas entre dominios. Si marcamos esta clase de anotación, a continuación, todos los métodos de la clase tendrán la capacidad de soportar varios dominios. Los beneficios de utilizar esta anotación se pueden ajustar con precisión el comportamiento de varios dominios. Un ejemplo del uso de las anotaciones como sigue:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1.1.18, Carpeta @ Init

El método de etiquetado de la inicialización WebDataBinider @InitBinder para la anotación, el método se utiliza para formar una transferencia de datos Http solicitud se procesa, tal como el formato de hora, el procesamiento de cadenas. Los siguientes son ejemplos del uso de esta anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-2, notas de beans Spring

En esta sección, relacionados principalmente incluyen cuatro anotaciones primavera Bean y su uso.

1-2-1, @ ComponentScan

Primavera @ComponentScan anotación para una configuración de paquete que va a escanear a ser componente anotación basado anotada se encuentra. paquete de ruta puede ser configurado para la exploración mediante la configuración de sus propiedades o atributos de valor basePackages. valor de la propiedad es basePackages alias. El uso de este comentario es el siguiente:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-2-2, @ Componente

clases de anotaciones @Component utilizados para anotar una clase de componente normal, no está claro el alcance de los negocios, simplemente observe esta primavera se señalará deben ser incorporados en el contenedor y la gestión de beans Spring. Ejemplo de uso de esta anotación es la siguiente:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-2-3, Servicio @

@Service @Component anotación es una extensión de (un caso especial), que se utiliza para etiquetar las clases de lógica de negocios. Y las notas @Component que se marca esta apuntes de clase, serán manejados automáticamente por primavera. Aquí está un ejemplo utilizando @Service anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

1-2-4, @ Repositorio

anotación @Repository se @Component extiende anotado, como en anotaciones @Component, anotación etiquetado esta clase es gestionar automáticamente Spring, @ Repositorio de anotación de datos para la capa etiquetado DAO clase persistente. El uso de este comentario es el siguiente:

Primavera de arranque Notas: cubo de la familia pase rápido

 

2, anotación primavera Dependencia Inject y Scops de haba

2-1, notas primavera DI

2-1-1, @ DependsOn

@DependsOn anotación puede configurar el contenedor IoC primavera antes de iniciar un Bean, Bean inicializar otros objetos. Esto se anota con el siguiente código de ejemplo:

Primavera de arranque Notas: cubo de la familia pase rápido

 

2-1-2, frijol @

Notas @Bean función principal es informar a la primavera, está marcada por esta clase de anotación tendrá que ser incorporado en la planta de frijol de gestión. el uso de anotación @Bean es muy simple, aquí, destacando el uso de anotación @Bean y destroyMethod de initMethod. Ejemplos son los siguientes:

Primavera de arranque Notas: cubo de la familia pase rápido

 

2-2, comentario Scops

2-2-1, @ Alcance

@Scope anotación se puede utilizar para definir las etiquetas @Component alcance y de la clase de alcance marcados clase @Bean. @Scope rango definido de acción tiene: Singleton, prototipo, petición, sesión, globalSession u otro rango personalizado. Aquí está un ejemplo para explicar prototipo. Cuando un Bean primavera se declara como el prototipo (modelo prototipo), en cada uno requiere el uso de tal tiempo, recipiente resorte IoC cambiará para inicializar una nueva instancia de la clase. Cuando se define un atributo scope haba, haba puede proporcionarse como prototipo: scope = "prototipo", también pueden utilizarse siempre que @Scope anotación, como sigue:

@Scope (valor = ConfigurableBeanFactory.SCOPE_PROPTOTYPE)

Se nos dará por debajo de las dos formas diferentes de utilizar la anotación @Scope, el código de ejemplo:

Primavera de arranque Notas: cubo de la familia pase rápido

 

2-2-2, @ Alcance Singleton

Cuando el alcance se establece en @Scope Singleton, se observó en los comentarios de esta clase sólo se inicializa una vez contenedor de primavera COI. Por defecto, instancias de clases recipiente resorte IoC son singleton inicializado. El mismo principio, este caso hay dos configuraciones, el código de ejemplo:

Primavera de arranque Notas: cubo de la familia pase rápido

 

3, anotaciones de configuración del Contenedor

3-1, @ Autowired

@Autowired dependencias de etiquetas de anotación para el resorte y se inyecta a ser analizado. Esta anotación puede actuar sobre los constructores, campos y métodos setter.

3-1-1, constructor de actuar

Los siguientes son ejemplos del uso de la etiqueta constructor anotación @Autowired:

Primavera de arranque Notas: cubo de la familia pase rápido

 

3-1-2, que actúa sobre un método setter

El código de ejemplo se denota métodos anotación setter @Autowired:

Primavera de arranque Notas: cubo de la familia pase rápido

 

3-1-3, que actúa sobre el terreno

campo de etiqueta anotación @Autowired es el más simple, que sólo requiere la adición de esta anotación a los campos correspondientes en el código de ejemplo es el siguiente:

Primavera de arranque Notas: cubo de la familia pase rápido

 

3-2, @ Primaria

Cuando el sistema tiene que ser configurado con el mismo tipo de una pluralidad de haba, @ primaria definir prioridades en el Bean. El siguiente ejemplo se dará de un código para ilustrar esta característica:

Primavera de arranque Notas: cubo de la familia pase rápido

 

salida:

Este es el mensaje método de envío dingding.

3-3, @ PostConstruct y @PreDestroy

Notablemente, estas anotaciones se no Spring, JSR-250 se derivan de las dos anotaciones, situadas en el common-annotations.jar. @PostConstruct método anotación antes de la primavera de la haba se inicializa a ser ejecutado por la etiqueta. método de marcaje de frijol que se ejecutará antes de ser destruido @PreDestroy para hacer comentarios. Los siguientes son ejemplos específicos del código:

Primavera de arranque Notas: cubo de la familia pase rápido

 

3-4, @ Calificador

Cuando se realiza una pluralidad del mismo tipo existen en el sistema Bean, @ inyección de dependencias Autowired cuando la clase de implementación no sabe cuál elegir para la inyección. En este punto, podemos utilizar las anotaciones para poner a punto @Qualifier, ayuda @Autowired seleccionar las dependencias correctas. El siguiente es un ejemplo de código en esta anotación:

Primavera de arranque Notas: cubo de la familia pase rápido

 

4, Primavera de arranque comentario

4-1, @ SpringBootApplication

@SpringBootApplication anotación es una configuración de anotación rápido, siendo marcada clase puede definir uno o más Bean, Bean y automáticamente gatillo auto-configuración y montaje de escaneo automático. Esta anotación es equivalente a una combinación de configuración @, @ EnableAutoConfiguration y @ComponentScan de. En la aplicación de la primavera de arranque clase principal, utilice esta anotación. Código de la muestra es la siguiente:

@SpringBootApplication 
aplicación public class {
void Main (args String []) {public static
SpringApplication.run (Application.class, args);
}
}

4-2, @ EnableAutoConfiguration

@EnableAutoConfiguration anotación de notificar a la primavera, de acuerdo con las actuales dependencias de ruta de clase introdujo configura automáticamente con estos elementos de configuración dependencias relacionadas.

4-3, @ ConditionalOnClass 与 @ConditionalOnMissingClass

Estas dos condiciones notas de anotación pertenecen a la clase, juzgarlos como base para decidir si se debe realizar alguna configuración de acuerdo a la presencia o ausencia de una clase. El siguiente es un simple código de ejemplo:

@Configuration 
@ConditionalOnClass (DataSource.class)
clase MySQLAutoConfiguration {
// ...
}

4-4, @ ConditionalOnBean 与 @ConditionalOnMissingBean

Estas dos condiciones pertenecen a las notas objeto de anotación, como base para decidir si o no a realizar ciertas método de configuración basada en la presencia o ausencia de un objeto. Código de la muestra es la siguiente:

@Bean 
@ConditionalOnBean (name = "origen de datos")
LocalContainerEntityManagerFactoryBean EntityManagerFactory () {
// ...
}
@Bean
@ConditionalOnMissingBean
pública myBean myBean () {
// ...
}

4-5, @ ConditionalOnProperty

@ConditionalOnProperty anotaciones cumple con los requisitos básicos de acuerdo a los elementos de configuración del archivo de configuración de la primavera, para decidir si se ejecuta o no sus métodos están marcados. Código de la muestra es la siguiente:

@Bean 
@ConditionalOnProperty (name = "Alipay", havingValue = "on")
Alipay Alipay () {
return new Alipay ();
}

4-6, @ ConditionalOnResource

Esta anotación se utiliza cuando la detección de la presencia de un perfil de manera que, por se desencadena su método de etiquetado, se utiliza el siguiente código de ejemplo para esta anotación:

@ConditionalOnResource (recursos = "ruta de clases: website.properties") 
Propiedades addWebsiteProperties () {
// ...
}

4-7, @ ConditionalOnWebApplication 与 @ConditionalOnNotWebApplication

Ambas anotaciones se utilizan para determinar si la aplicación actual es una aplicación web. Si la aplicación actual es una aplicación web, utilice el WebApplicationContext primavera, y definir el ciclo de vida de sus sesiones. El siguiente es un ejemplo sencillo:

@ConditionalOnWebApplication 
HealthCheckController healthCheckController () {
// ...
}

4-8, @ ConditionalExpression

Esta anotación nos permite controlar más las condiciones de configuración basada en la expresión de grano fino. Cuando se cumple la condición de la expresión de una o cuando la expresión es verdadera, se marcará esta ejecución método comentario.

@Bean 
@ConditionalException ( "$ {} localstore && $ {locales == 'verdadero'}")
tienda LocalFileStore () {
// ...
}

4-9, @ Condicional

control de anotación puede @Conditional es condiciones configuraciones más complejas. condiciones de primavera, cuando el incorporado en la anotación de control no cumple con los requisitos de la aplicación, puede utilizar esta anotación para definir las condiciones de control a medida, con el fin de cumplir con los requisitos de la costumbre. El siguiente es un ejemplo sencillo de la utilización de anotación:

@Conditioanl (CustomConditioanl.class) 
CustomProperties addCustomProperties () {
// ...
}

resumen

  • El curso resume el uso común de varios tipos de anotaciones primavera de arranque, el unificado para que podamos tener una comprensión global de la observación común de Primavera de arranque. Por razones de espacio, en la primavera de arranque número inusual de notas, compartirá en el próximo suplemento y explicación.

Supongo que te gusta

Origin www.cnblogs.com/huangjinyong/p/12461950.html
Recomendado
Clasificación