Una alternativa a la configuración XML es la configuración basada en anotaciones, que se basa en metadatos de código de bytes para conectar componentes en lugar de declaraciones entre corchetes angulares. En lugar de utilizar XML para describir la herramienta de enlace del bean, el desarrollador envuelve la configuración en la propia clase del bean utilizando anotaciones para la declaración de clase, método o campo correspondiente. Como se menciona en la subsección Ejemplo: AutowiredAnnotationBeanPostProcessor
, usandoBeanPostProcessor
en combinación con anotaciones es un medio común para ampliar el contenedor Spring IoC. Por ejemplo, Spring 2.0 introdujo la capacidad de forzar propiedades requeridas usando la anotación @Required
. Spring 2.5 permitió el mismo enfoque general para gestionar la inyección de dependencias utilizando Spring. Esencialmente, la anotación @Autowired
proporciona las mismas capacidades que se describen en la sección" Detección y vinculando objetos que interactúan, pero con un control más preciso y una aplicabilidad más amplia. Spring 2.5 también agregó soporte para anotaciones JSR-250 como @PostConstruct
y @PreDestroy
. Para Spring 3.0, se agregó soporte para las anotaciones JSR-330 (Inyección de dependencia para Java) contenidas en el paquete javax.inject
, como @Inject
y @Named
.
La inyección de dependencia mediante anotaciones se produce antes de la inyección de dependencia mediante XML. Por lo tanto, la configuración XML anula las anotaciones de propiedades mediante ambos enfoques.
Como de costumbre, puede registrar postprocesadores como definiciones de beans independientes, pero también se pueden registrar implícitamente incluyendo la siguiente etiqueta en su configuración Spring XML (tenga en cuenta la inclusión del espacio de nombres context
):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
</beans>
El elemento <context:annotation-config/>
registra implícitamente los siguientes postprocesadores:
<context:annotation-config/>
solo busca anotaciones para beans en el mismo contexto de aplicación en el que está definido. Esto significa que si pones <context:annotation-config/>
en WebApplicationContext
para DispatcherServlet
, comprobará la presencia de beans @Autowired
solo en sus controladores, no en servicios.
GO TO FULL VERSION