Principio subyacente del COI: marco Spring

1. Concepto de COI

La inversión de control (IOC) es un principio de diseño en la programación orientada a objetos que se puede utilizar para reducir el acoplamiento entre códigos de computadora. El método más común se llama inyección de dependencia (DI para abreviar), y otro método se llama búsqueda de dependencia. A través de la inversión de control, cuando se crea un objeto, una entidad externa que regula todos los objetos del sistema le pasa las referencias de los objetos de los que depende. También se puede decir que la dependencia se inyecta en el objeto.

(1) Inversión de control, el proceso de creación de objetos e invocación entre objetos se entrega a Spring para su gestión.

(2) Propósito del uso de IOC: reducir el acoplamiento

(3) Hacer un caso introductorio es la realización de IOC

2. El principio subyacente de la COI

  • El principio subyacente se implementa mediante tres partes que incluyen: análisis xml, modo de fábrica, reflexión.
    El diseño del programa requiere alta cohesión y bajo acoplamiento
    (1) el acoplamiento de llamadas al método original es demasiado alto
    Inserte la descripción de la imagen aquí
    (2) usuario y UserService que reducen el modo de fábrica El grado de acoplamiento entre, pero todavía hay un cierto grado de acoplamiento
    Inserte la descripción de la imagen aquí

(3) Para reducir aún más el grado de pensamiento de acoplamiento-COI

El primer paso es el archivo de configuración XML, y el segundo paso tiene clases de servicio y dao para crear una clase de fábrica.
Inserte la descripción de la imagen aquí

3. Interfaz IOC

1. La idea de IOC se basa en el contenedor de IOC, y la capa inferior del contenedor de IOC es la fábrica de objetos.

2. Spring proporciona dos formas de interfaces de implementación de contenedores IOC-2

(1) Interfaz BeanFactory

BeanFactory es la implementación básica del contenedor IOC. Es una interfaz interna utilizada por Spring. No se proporciona para que la utilicen los desarrolladores. * Los objetos no se crean cuando se carga el archivo de configuración. Los objetos se crean solo cuando se obtienen (se usan). Entonces uno generalmente no se usa.

/*一个例子*/
public class testSpring {
    
    
    //新建测试单元
    @Test
    public void testUser(){
    
    
        //1.加载Spring配置文件
        //ApplicationContext context=
        BeanFactory context=
                new ClassPathXmlApplicationContext("bean1.xml");
        //2.获取创建对象
        User user=context.getBean("user", User.class);
        //3.执行方法
        System.out.println(user);
        user.HelloSpring();
    }
}

(2) Interfaz ApplicationContext

La subinterfaz de la interfaz BeanFactory proporciona funciones cada vez más potentes, y generalmente es utilizada por los desarrolladores. * Al cargar el archivo de configuración, se creará el objeto del archivo de configuración

/*一个例子*/
public class testSpring {
    
    
    //新建测试单元
    @Test
    public void testUser(){
    
    
        //1.加载Spring配置文件
        ApplicationContext context=
                new ClassPathXmlApplicationContext("bean1.xml");
        //2.获取创建对象
        User user=context.getBean("user", User.class);
        //3.执行方法
        System.out.println(user);
        user.HelloSpring();
    }
}

(3) La diferencia entre los dos:

BeanFactory crea objetos solo cuando se usa, mientras que ApplicationContext puede crear objetos cuando se carga. En proyectos reales, este proceso lento y laborioso generalmente se carga cuando se inicia el servidor, por lo que ApplicationContext se usa generalmente para implementar IOC.

3. Clase de implementación de la interfaz ApplicationContext y clase de implementación de la interfaz BeanFactory

Ctrl + H ver clase de implementación

  • Incluye principalmente dos clases: ClassPathXmlApplicationContext y FileSystemXmlApplicationContext
  • ClassPathXmlApplicationContext se usa para obtener el objeto de contexto, el parámetro es el nombre de la ruta del archivo en el directorio Src
  • FileSystemXmlApplicationContext se utiliza para obtener el objeto de contexto, el parámetro es la ruta del directorio real, comenzando por la letra de la unidad

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44307065/article/details/107254146
Recomendado
Clasificación