AUTOWIRING通过属性,setter和构造函数的区别是什么?
创始人
2024-11-12 16:30:33
0

在Spring框架中,可以使用三种不同的方式实现依赖注入的自动连接(AUTOWIRING)。这三种方式分别是属性注入(By Attribute)、Setter注入(By Setter)、构造函数注入(By Constructor)。

属性注入(By Attribute):使用@Autowired注释来自动将实例化类的属性附加到Spring容器中定义的bean。下面的示例演示了通过属性注入将CustomerService的customerDao属性连接到CustomerDaoImpl bean。

@Service
public class CustomerService {
   @Autowired
   private CustomerDao customerDao; 
}

Setter注入(By Setter):使用@Autowired注释将依赖项注入到setter方法中。下面的示例演示如何通过setter注入将CustomerService的customerDao属性连接到CustomerDaoImpl bean。

@Service
public class CustomerService {
   private CustomerDao customerDao;
   
   @Autowired
   public void setCustomerDao(CustomerDao customerDao) {
      this.customerDao = customerDao;
   }
}

构造函数注入(By Constructor):使用@Autowired注释将构造函数的参数注入实现类的实例化。下面的示例演示了如何通过构造函数注入将CustomerService的customerDao属性连接到CustomerDaoImpl bean。

@Service
public class CustomerService {
   private CustomerDao customerDao;

   @Autowired
   public CustomerService(CustomerDao customerDao) {
      this.customerDao = customerDao;
   }
}

总的来说,这三种方式的主要区别在于注入依赖项的时间和方式。属性注入最简单的方式,而构造函数注入则是最常见的方式,因为它够简单且明确。Setter注入在某些情况下也是一种合理的方式,例如当必须注入多个依赖项时。

相关内容

热门资讯

透视推荐!红龙poker辅助平... 透视推荐!红龙poker辅助平台(透视)hhpoker到底可以透视码,教程步骤(有挂秘笈)-哔哩哔哩...
透视专业!红龙poker辅助(... 透视专业!红龙poker辅助(透视)wepoker开脚本视频,教程指引(有挂详细)-哔哩哔哩一、we...
透视详情!pokemmo脚本(... 透视详情!pokemmo脚本(透视)wepoker私人局规律,教程学习(有挂实锤)-哔哩哔哩wepo...
透视揭幕!cloudpoker... 透视揭幕!cloudpoker透视(透视)xpoker辅助器,教程绝活儿(真实有挂)-哔哩哔哩;1、...
透视科普!hh poker辅助... 透视科普!hh poker辅助器先试用(透视)wpk有透视吗,教程总结(有挂总结)-哔哩哔哩1、超多...
透视揭幕!wepoker透视a... 透视揭幕!wepoker透视app下载(透视)德州透视脚本,教程策略(有挂详细)-哔哩哔哩1、点击下...
透视解密!wpk俱乐部辅助器(... 透视解密!wpk俱乐部辅助器(透视)wepoker有透视底牌吗,教程法子(有挂分享)-哔哩哔哩1、全...
透视解谜!wepoker免费脚... 透视解谜!wepoker免费脚本咨询(透视)wpk免费辅助,教程窍要(有挂详细)-哔哩哔哩1、打开软...
透视开挂!hhpoker到底可... 透视开挂!hhpoker到底可以透视吗(透视)智星菠萝透视,教程项目(揭秘有挂)-哔哩哔哩1、完成h...
透视解密!wejoker辅助软... 透视解密!wejoker辅助软件视频(透视)pokernow辅助控制,教程诀窍(有挂讲解)-哔哩哔哩...