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注入在某些情况下也是一种合理的方式,例如当必须注入多个依赖项时。

相关内容

热门资讯

在玩家背景下!温州茶苑游戏辅助... 在玩家背景下!温州茶苑游戏辅助(辅助)本来有挂辅助工具(了解有挂)-哔哩哔哩一、温州茶苑游戏辅助可以...
透视ai代打!德州私人局脚本,... 透视ai代打!德州私人局脚本,陕西三代陕西三代辅助器免费使用,秘籍辅助挂(真的有挂)-哔哩哔哩1、陕...
备受关注的!阿拉游戏中心辅助工... 备受关注的!阿拉游戏中心辅助工具苹果版(辅助)好像是真的辅助安装(有挂猫腻)-哔哩哔哩1、玩家可以在...
据监测!拱趴大菠萝万能挂图解,... 据监测!拱趴大菠萝万能挂图解,家乡大二技巧,演示辅助攻略(有挂攻略)-哔哩哔哩1、拱趴大菠萝万能挂图...
今年以来!789大菠萝插件功能... 今年以来!789大菠萝插件功能(辅助)其实有挂辅助安装(确实有挂)-哔哩哔哩暗藏猫腻,小编详细说明7...
无独有偶!哈糖大菠萝免费辅助器... 无独有偶!哈糖大菠萝免费辅助器,情怀游戏字牌辅助,阶段辅助app(有挂透视)-哔哩哔哩小薇(辅助器软...
目前!麻雀智能辅助软件开挂(辅... 目前!麻雀智能辅助软件开挂(辅助)竟然存在有辅助神器(有挂详细)-哔哩哔哩1、进入到麻雀智能辅助软件...
透视规律!约局吧德州透视,美猴... 透视规律!约局吧德州透视,美猴王房卡辅助,指南辅助攻略(有挂方法)-哔哩哔哩1、约局吧德州透视破解器...
近年来!微信小程序雀神(辅助)... 近年来!微信小程序雀神(辅助)竟然是有辅助软件(有挂工具)-哔哩哔哩小薇(辅助器软件下载)致您一封信...
总结辅助挂!pokemmo辅助... 总结辅助挂!pokemmo辅助脚本,越乡游辅助工具,模块辅助教程(有挂教学)-哔哩哔哩1、用户打开应...