Inicio rápido con las funciones principales de Spring IOC
COI: Inversión de Control es una teoría, concepto e idea. La creación, asignación y gestión de objetos se implementan mediante código fuera del contenedor, es decir, la creación de objetos se completa con otros recursos externos.
El contenedor Spring es el núcleo del framework Spring. Los contenedores crean objetos, los conectan, los configuran y gestionan todo su ciclo de vida desde la creación hasta la destrucción.
El contenedor Spring utiliza inyección de dependencia (DI) para gestionar los componentes que componen una aplicación, llamados Spring Beans.
Al leer las instrucciones proporcionadas por los metadatos de configuración, el contenedor sabe qué objetos instanciar, configurar y ensamblar. Los metadatos de configuración se pueden representar mediante XML, anotaciones Java o código Java. El contenedor Spring IoC aprovecha las clases POJO de Java y los metadatos de configuración para producir un sistema o aplicación completamente configurado y ejecutable.
El contenedor IOC es un contenedor con capacidades de inyección de dependencias que puede crear objetos. El contenedor IOC es responsable de crear instancias, ubicar y configurar objetos en la aplicación y establecer dependencias entre estos objetos. Por lo general, el programador controla el control de la nueva instancia, pero "inversión de control" significa que el trabajo de la nueva instancia no lo realiza el programador, sino que se entrega al contenedor Spring. En Spring, BeanFactory es la representación real de un contenedor IOC.
El propósito de usar IoC: reducir los cambios en el código mientras se logran diferentes funciones. Lograr el desacoplamiento.
Paso 1: Crear proyecto Maven
Importar dependencias de Spring y junit en pom.xml:
Paso 2: Crear interfaz
Paso 3: Crea la clase de implementación de la interfaz
Paso 4: Crea la aplicación.
Paso 5: Crear una clase de prueba
Una de las funciones principales del framework Spring es gestionar las dependencias entre beans mediante la inyección de dependencias. En el archivo de configuración XML de Spring, puede asignar valores a las propiedades de los objetos Java.
Cuando el contenedor llama a un constructor sin parámetros o a un método de fábrica estático sin parámetros para inicializar su Bean, el contenedor llamará a la función de valor establecido en su Bean para completar DI en función de la función de valor establecido.
Paso 1: Crear clase de entidad
Paso 2: Escribir el archivo application.xml en el directorio de recursos
Paso 3: Escribir clase de prueba
p>Inyección de constructor:
La DI basada en constructor se logra cuando un contenedor llama a un constructor de clase con un conjunto de parámetros, cada uno de los cuales representa una dependencia de otra clase.
Paso 1: Crear la clase de entidad
Paso 2: Escribir la aplicación.
Paso 3: escribir clase de prueba
Inyectar beans internos:
Las clases internas de Java se definen en el alcance de otras clases. De manera similar, los beans internos también se definen en el alcance de. Otros beans definidos en el alcance.
La definición de beans internos no requiere especificar ID ni nombre. Si se especifica, el contenedor no los utilizará como identificadores para distinguir los beans e ignorará el atributo de alcance del bean interno. Por lo tanto, los beans internos son siempre anónimos y siempre se crean junto con los beans externos.
Paso 1: Crear clase de entidad
Paso 2: Escribir el archivo application.xml en el directorio de recursos
Paso 3: Escribir clase de prueba
Paso 3: Escriba la clase de prueba
Paso 1: Cree la clase de entidad
Paso 2: Escriba el archivo application.xml en el directorio de recursos
Paso 3: Escriba el clase de prueba por tipo:
Este modo especifica el cableado automático según el tipo de propiedad. El contenedor Spring verá el Bean, y en el archivo de configuración XML, el atributo autowire del Bean se establece en byType, y luego, si el tipo del Bean coincide con uno de los nombres del Bean en el archivo de configuración, intentará coincidir con el Bean. tipo. Luego, si su tipo coincide con el nombre de un bean en el archivo de configuración, intentará coincidir y conectar sus propiedades. Si se encuentra una coincidencia, inyecta el bean; de lo contrario, genera una excepción.
Paso 1: Crear una clase de entidad
Paso 2: Escribir el archivo application.xml en el directorio de recursos
Paso 3: Crear una clase de prueba
Cableado automático por constructor
Este patrón es muy similar a byType, pero funciona con parámetros del constructor. El contenedor Spring mira el bean, establece el atributo autowire del bean en el constructor en el archivo de configuración XML y luego intenta hacer coincidir sus parámetros de constructor. Si se encuentra una coincidencia, inyectará el bean; de lo contrario, generará una excepción.
La creación y asignación de atributos de objetos Java se realiza mediante anotaciones Spring.
La inyección de anotaciones se realiza antes de la inyección XML, por lo que la configuración de este último será reescrita por el primero mediante dos formas de concatenación de atributos.
Las conexiones de anotaciones no se abren en el contenedor Spring de forma predeterminada. Por lo tanto, antes de utilizar el cableado basado en anotaciones, debemos habilitarlo en el archivo de configuración de Spring. Entonces, si desea utilizar alguna anotación en su aplicación Spring, considere los siguientes archivos de configuración.
1)@Component
Esta anotación se puede usar para describir un Bean en Spring, pero es un concepto amplio que solo representa un componente (Bean) y se puede usar en cualquier funcionar a nivel Para usarlo, simplemente anota tu clase con anotaciones.
2) @Repository
En Spring, esta anotación se usa para identificar clases en la capa de acceso a datos (capa DAO) como beans, y su función es la misma que @Component.
3)@Service
Generalmente se usa en la capa empresarial (capa de servicio) para identificar las clases en la capa empresarial como beans en Spring, y sus funciones son las mismas que @Component .
4)@Controller
Generalmente se usa en la capa de control (como Action en Struts2 y Controller en SpringMVC), identificando las clases en la capa de control como Beans en Spring. lo mismo que @Component. Su funcionalidad es la misma que @Component.
5) @Autowired
Se puede aplicar a variables de atributos de bean, métodos de establecimiento de atributos, métodos y constructores que no se establecen, etc., y se puede cooperar con el procesador de anotaciones correspondiente. Úselo para completar la configuración automática de beans.
De forma predeterminada, los beans se ensamblan según su tipo.
6)@Resource
Su función es la misma que Autowired, pero la diferencia es que @Autowired utiliza de forma predeterminada el ensamblaje según el tipo de Bean, mientras que @Resource utiliza de forma predeterminada el ensamblaje. basado en el nombre de la instancia de Bean.
@Resource tiene dos atributos importantes: nombre y tipo.
Spring resuelve el atributo de nombre en el nombre de la instancia del Bean y el atributo de tipo en el tipo de instancia del Bean. Si especifica el atributo de nombre, realizará la conexión según el nombre de la instancia; si especifica el atributo de tipo, realizará la conexión según el tipo de bean; Si no se especifica ninguno de los dos, el bean se ensambla primero por nombre de instancia o por tipo de bean si no hay coincidencia; si ninguno coincide, se genera una excepción NoSuchBeanDefinitionException.
7)@Qualifier
La anotación @Qualifier se usa junto con la anotación @Autowired para cambiar el valor predeterminado de ensamblaje por tipo de bean a ensamblaje por el nombre de instancia de bean especificado en la anotación @Qualifier.
Paso 1: Crear la clase de entidad
Paso 2: Escribir la aplicación. xml en el directorio de recursos
Paso 3: Crear una clase de prueba
Escanear varios beans
Escanear varios paquetes:
Paso 1: Crear una entidad Clase
Paso 2: archivo de configuración xml
Archivo de configuración de atributos
Paso 3: escribir clase de prueba
Enlace original: / weixin_52058417/ artículo/detalles/119277429