Spring中的IOC和DI

IOC(控制反转)

  IOC(控制反转),将对象的创建权反转交给了Spring。具体原理看这里Java中的反射和工厂模式

DI(依赖注入)

  这个就先得从依赖讲起

  • 依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Class A{

    }

    Class B{
    public void xxx(A a){

    }
    }
  • 继承 is a

    1
    2
    3
    4
    5
    6
    7
    Class A{

    }

    Class B extends A{

    }
  • 聚合 has a

例子:

  • Spring配置文件,将name依赖于userDao

    1
    2
    3
    <bean id="userDao" class="com.lgq.UserDaoImpl">
    <property name="name" value="张三"/>
    </bean>
  • useDao实现类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class UserDaoImpl implements UserDao {
    private String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }
    }
  • 测试类

    1
    2
    3
    4
    5
    6
    7
    @Test
    public void test1(){
    //创建Spring的工厂
    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring.xml");
    UserDao userDao=(UserDaoImpl)applicationContext.getBean("userDao");
    System.out.println(((UserDaoImpl) userDao).getName());
    }
-------------本文结束感谢阅读-------------