primavera 的 IoC (Inversão de controle) 3

Parte I: IoC do Spring (Inversão de Controle) 2

No artigo anterior beans.xml, especificamos o objeto de classe que precisa ser instanciado. SpringNo IoCmétodo de construção padrão chamado para criar um objeto há parâmetros de construção.
Este é um bom teste:
modifique as seguintes UserServiceImplcategorias, da seguinte maneira:

public class UserServiceImpl implements UserService{
    
    

    private UserDao userDao;

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

    public UserServiceImpl(){
    
    
        System.out.println("UserServiceImpl无参数构造!");
    }

    public UserServiceImpl(UserDao dao){
    
    
        this.userDao = dao;
        System.out.println("UserServiceImpl有参构造!");
    }

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

Teste agora:

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();
    }
}

Ainda chamada Test, e então não há problema, os resultados do teste são os seguintes:
Insira a descrição da imagem aqui
Pode-se ver que o construtor padrão é o construtor sem argumento.
Em seguida, beans.xmlpassamos o objeto de mudança em:

<?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">
        <constructor-arg type="com.dao.UserDao" ref="oracleDao"/>
    </bean>
</beans>

Especifique o tipo de entrada e a referência.
Em seguida, execute Test: o
Insira a descrição da imagem aqui
parâmetro do construtor passa o endereço do documento: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-constructor-injection


Endereço do vídeo de referência: https://www.bilibili.com/video/BV1WE411d7Dv?p=6

Acho que você gosta

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