2.Spring學習筆記之 ————IoC(控制反轉)
阿新 • • 發佈:2018-12-17
控制反轉(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,咱們只管用就行。