CTO 說(shuō)了,用錯(cuò)@Autowired 和@Resource 的人可以領(lǐng)盒飯了
閱讀本文大概需要 3.5 分鐘。
來(lái)自:https://sourl.cn/P8S4xx
介 紹
@Autowire
private?JdbcTemplate?jdbcTemplate;
“Field injection is not recommended Inspection info: Spring Team recommends: "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies".

注入方式
public?class?UserServiceImpl?implents?UserService{
????private?UserDao?userDao;
????@Autowire
????public?UserServiceImpl(UserDao?userDao){
????????this.userDao?=?userDao;
????}
}
public?class?UserServiceImpl?implents?UserService{
?????private?UserDao?userDao;
?????@Autowire
?????public?serUserDao(UserDao?userDao){
?????????this.userDao?=?userDao;
?????}
?}
public?class?UserServiceImpl?implents?UserService{
?????@Autowire
?????private?UserDao?userDao;
?}

基于字段的依賴注入缺點(diǎn)
| 對(duì)于有final修飾的變量不好使
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;
??}
}
結(jié) 論
推薦閱讀
GitHub 上只賣 5 美元的腳本,卻給我?guī)?lái)了一年數(shù)十萬(wàn)元報(bào)酬
內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬(wàn)并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper、數(shù)據(jù)結(jié)構(gòu)、限流熔斷降級(jí)......等技術(shù)棧!
?戳閱讀原文領(lǐng)?。?/span>? ? ? ? ? ? ? ??? ??? ? ? ? ? ? ? ? ? ?朕已閱?
評(píng)論
圖片
表情

