1. 程式人生 > >2.Spring學習筆記之 ————IoC(控制反轉)

2.Spring學習筆記之 ————IoC(控制反轉)

控制反轉(IoC),是Spring裡一個專有的名詞,其意思就是說,物件的例項由Spring容器來進行建立而不是我們自己手動建立,當我們在Spring容器中設定好Bean屬性後,Spring容器就會自動建立其例項,我們只要去呼叫Spring的Bean就行。

接下來是例子:

首先,我們建立一個介面和一個介面的實現類

public interface UserDao {

    public void say();

}
public class UserDaoImpl implements UserDao {

    @Override
    public void say() {
        System.out.println("Hello Ioc");
    }

}

接著,當我們要用這個介面的時候,正常情況下是這樣的

public class TestIoc {

    public static void main(String[] args) {
        UserDao userDao = new UserDaoImpl(); //需要我們主動去new一個物件
        userDao.say();
    }

}

而在用了Spring之後,Spring提供了兩個註釋,分別是@Autowired和@Resource。以及,@Service註釋。具體用法如下:

@Service
public class UserDaoImpl implements UserDao {

    @Override
    public void say() {
        System.out.println("Hello Ioc");
    }

}

main函式裡這樣用

public class TestIoc {

    @Autowired
    UserDao UserDao;
    public static void main(String[] args) {
        userDao.say();
    }

}

以上,就是Spring的控制反轉,讀者可能會問,有什麼不一樣呀,我不還是一樣定義了UserDao,只是加了個註釋而已。

從上面我們可以看出,UserDao其實已經被Spring容器代理了,而當我們在main函式裡用到的userDao,其實是Spring容器幫咱們建立好的物件。並不是咱麼主動去new建立的哦。這就是控制反轉,筆者的理解是,把物件的建立交給Spring,咱們只管用就行。