為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦

程序員一天 2021-09-20 01:40:43 阅读数:349

程序 都使 使用 方法 注入

???}

}


### **基於Setter的依賴注入**

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

public?class?UserServiceImpl?implents?UserService{

???private?UserDao?userDao;

???

[email protected]

???public?serUserDao(UserDao?userDao){

???this.userDao?=?userDao;

???}

?}


### **基於字段的依賴注入**

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

public?class?UserServiceImpl?implents?UserService{

[email protected]

???private?UserDao?userDao;

?}


基於字段的依賴注入方式會在Idea當中吃到黃牌警告,但是這種使用方式使用的也最廣泛,因為簡潔方便.您甚至可以在一些Spring指南中看到這種注入方法,盡管在文檔中不建議這樣做.(有點執法犯法的感覺)
?![為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java](https://s8.51cto.com/images/20210920/1632072500950034.jpg)
基於字段的依賴注入缺點
-----------
> 看看我們最常用的方式到底有什麼缺點
### **對於有final修飾的變量不好使**
Spring的IOC對待屬性的注入使用的是set形式,但是final類型的變量在調用class的構造函數的這個過程當中就得初始化完成,這個是**基於字段的依賴注入**做不到的地方.只能使用**基於構造函數的依賴注入**的方式。
### **掩蓋單一職責的設計思想**
我們都知道在OOP的設計當中有一個**單一職責思想**,如果你采用的是**基於構造函數的依賴注入**的方式來使用Spring的IOC的時候,當你注入的太多的時候,這個構造方法的參數就會很龐大,類似於下面.
當你看到這個類的構造方法那麼多參數的時候,你自然而然的會想一下:**這個類是不是違反了單一職責思想?**.但是使用**基於字段的依賴注入**不會讓你察覺,你會很沉浸在@Autowire當中

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.

public?class?VerifyServiceImpl?implents?VerifyService{

???

??private?AccountService?accountService;

??private?UserService?userService;

??private?IDService?idService;

??private?RoleService?roleService;

??private?PermissionService?permissionService;

??private?EnterpriseService?enterpriseService;

??private?EmployeeService?employService;

??private?TaskService?taskService;

??private?RedisService?redisService;

??private?MQService?mqService;

??public?SystemLogDto(AccountService?accountService,?

???UserService?userService,?

???IDService?idService,?

???RoleService?roleService,?

???PermissionService?permissionService,?

???EnterpriseService?enterpriseService,?

???EmployeeService?employService,?

???TaskService?taskService,?

???RedisService?redisService,?

???MQService?mqService)?{

???this.accountService?=?accountService;

???this.userService?=?userService;

???this.idService?=?idService;

???this.roleService?=?roleService;

???this.permissionService?=?permissionService;

???this.enterpriseService?=?enterpriseService;

???this.employService?=?employService;

???this.taskService?=?taskService;

???this.redisService?=?redisService;

???this.mqService?=?mqService;

??}

}

《MySql面試專題》

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_程序員_02

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_03

《MySql性能優化的21個最佳實踐》

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_04

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_05

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_06

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_後端_07

《MySQL高級知識筆記》

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_08

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_09

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_後端_10

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_11

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_後端_12

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_13

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_程序員_14

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_程序員_15

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_程序員_16

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_Java_17

文中展示的資料包括:**《MySql思維導圖》《MySql核心筆記》《MySql調優筆記》《MySql面試專題》《MySql性能優化的21個最佳實踐》《MySq高級知識筆記》**如下圖

為什麼高級程序員都使用基於構造方法的依賴注入?學到了,Java數據結構書籍推薦_後端_18

 CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】

關注我,點贊本文給更多有需要的人

版权声明:本文为[程序員一天]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210920014042952b.html