前面第一篇我們認識了什么是Spring以及通過官網的指引,撰寫并啟動了第一個屬于我們的Spring程式,雖然程式啟動了,但是對于里面的內容以及如何實作的我們還是不是十分的清楚,那么接下來我們就首先先來了解一下Spring中的一個核心概念——IOC
IoC(控制翻轉)推導
之前的代碼架構
-
通常我們以前實作專案的時候會分為這么幾步:
-
- 先寫一個UserDao介面
public interface UserDao {
public void getUser();
}
-
- 再去寫一個Dao的實作類
public class UserDaoImpl implements UserDao {
@Override
public void getUser() {
System.out.println("get");
}
}
-
- 然后去寫UserService的介面
public interface UserService {
public void getUser();
}
-
- 最后去寫Service的實作類(組合)
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public void getUser() {
userDao.getUser();
}
}
-
- 最后再去使用它(測驗),
@Test
public void test(){
UserService service = new UserServiceImpl();
service.getUser();
}
上面就是我們以前實作一個功能的整體邏輯,也算是很清晰,但是存在著一個問題,即由程式員來控制代碼的生成,對于每次的需求變更我們都需要去改動我們相應的代碼,牽一發而動全身,而且這樣代碼的耦合性太高了,
IOC的理念
為了解決因為需求的改動而頻繁去更改代碼,我們在需要用到它的地方不去實作它,而是利用set提供一個介面,這樣我們把創建物件的主動權交給了呼叫者即控制翻轉,程式不用去管如何創建以及實作的,只需要提供一個介面,讓呼叫者來決定,
public class UserServiceImpl implements UserService {
private UserDao userDao;
// 利用set來進行動態實作值的注入
public void setUserDao(UserDao userDao){
this.UserDao=userDao;
}
}
IoC本質
控制反轉(IoC),是一種設計思想,DI(依賴注入)是實作IoC的一種方法,
- Ioc是Spring框架的核心內容,使用多種方式完美的實作了IoC,可以使用XML配置也可以使用注解,新版本的Spring也可以零配置實作IoC
- Spring容器在初始化時先讀組態檔、根據組態檔或元資料創建于組織物件存入容器中,程式使用時再從IoC容器中取出需要的物件,

? 采用XML方式配置Bean的時候,Bean的定義資訊是和實作分離的,而采用注解的方式可以把兩者合為一體,Bean的定義資訊直接以注解的形式定義在實作類中,從而達到了零配置的目的,
- 控制反轉是一種通過描述(XML或注解)并通過第三方去生產或獲取特定物件的方式,在Spring中實作控制反轉的是IoC容器,其實作方法是依賴注入(Dependency Injection,DI)
最后
- 如果覺得看完有識訓,希望能給我點個贊,這將會是我更新的最大動力,感謝各位的支持
- 歡迎各位關注我的公眾號【java冢狐】,專注于java和計算機基礎知識,保證讓你看完有所識訓,不信你打我
- 如果看完有不同的意見或者建議,歡迎多多評論一起交流,感謝各位的支持以及厚愛,

本文由博客群發一文多發等運營工具平臺 OpenWrite 發布
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/244540.html
標籤:Java
上一篇:Thread, Runable, Callable 還傻傻分不清?
下一篇:十大經典排序——java實作
