resorte 的 IoC (Inversión de control) 2

La primera parte: el IoC (inversión de control) de Spring
es una imagen metafórica a continuación IoC, es decir, desacoplamiento.
Inserte la descripción de la imagen aquí
IoCEs Springel contenido central del marco. Se implementa de diversas formas IoC. Puede utilizar la XMLconfiguración o las anotaciones. En Springel control de inversión, la implementación depende de la inyección ( Dependency Injection, DI).
Entonces, ¿por qué no venir y experimentarlo?

1. XMLDarse cuentaIoC

Ruta:
Inserte la descripción de la imagen aquí
Hello.javaContenido:

package com.weizu;

public class Hello {
    
    
    private String name;

    public Hello() {
    
    
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    @Override
    public String toString() {
    
    
        return "Hello{" +
                "name='" + name + '\'' +
                '}';
    }
}

Luego defina el beans.xmlcontenido:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="hello" class="com.weizu.Hello">
        <property name="name" value="Xiao wang."/>
    </bean>

</beans>

Finalmente, use la prueba:

import com.weizu.Hello;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class myTest {
    
    

    @Test
    public void Test(){
    
    
        // create and configure beans
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Hello hello = (Hello) context.getBean("hello");
        System.out.println(hello.getName());
    }
}

Resultado de la prueba:
Inserte la descripción de la imagen aquí
Documento oficial correspondiente: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-factory-instantiation
Arriba hemos aprendido cómo usar XMLpara cargar Beanobjetos, luego podemos ser el último artículo de mejora, con Springalojamiento automático.
Es decir beans.xml, especifique Daola fuente de datos cargada por la capa en el archivo .

2. Caso 2

Estructura del proyecto
Inserte la descripción de la imagen aquí
UserDao.java:

public interface UserDao {
    
    
    void getUser();
}

UserMySQLImpl .java:

public class UserMySQLImpl implements UserDao{
    
    
    public void getUser() {
    
    
        System.out.println("MySQL impl.");
    }
}

UserOracleImpl.java:

public class UserOracleImpl implements UserDao{
    
    
    public void getUser() {
    
    
        System.out.println("Oracle impl.");
    }
}

UserService.java:

public interface UserService {
    
    
    void getUserService();
}

UserServiceImpl.java

public class UserServiceImpl implements UserService{
    
    

    private UserDao userDao;

    // set注入
    public void setUserDao(UserDao dao){
    
    
        this.userDao = dao;
    }

    public void getUserService() {
    
    
        userDao.getUser();
    }
}

Luego, definimos el beans.xmlarchivo para definir la daofuente de datos de la capa que debe cargarse :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="mySqlDao" class="com.dao.UserMySQLImpl"/>
    <bean id="oracleDao" class="com.dao.UserOracleImpl"/>

    <bean id="userService" class="com.service.UserServiceImpl">
        <property name="UserDao" ref="mySqlDao"/>
    </bean>
</beans>

Luego, prueba en la prueba:

public class myTest {
    
    

    @Test
    public void Test(){
    
    
        // create and configure beans
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        UserService userService = (UserService) context.getBean("userService");
        userService.getUserService();
    }
}

Resultado:
Inserte la descripción de la imagen aquí
es decir, puede xmlrealizar un objeto de origen de datos simple para especificar lo que requiere la Springdecisión cómo cargar. Ya no es necesario utilizarlo newpara crear objetos, lo que puede reducir el grado de acoplamiento del código. Recuerde: ApplicationContexty ClassPathXmlApplicationContext.
Simplemente modifique el archivo de configuración, sin modificar el programa. Viene el
objeto de Springla asignación y la gestión.


Dirección de video: https://www.bilibili.com/video/BV1WE411d7Dv?p=5&spm_id_from=pageDriver

Supongo que te gusta

Origin blog.csdn.net/qq_26460841/article/details/115033703
Recomendado
Clasificación