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

相关内容

热门资讯

玩家实测!微扑克辅助工具,微扑... 玩家实测!微扑克辅助工具,微扑克如何让系统发好牌(微扑克)真是存在有挂(详细教程)-哔哩哔哩1、全新...
玩家必看科普!微扑克辅助提高胜... 玩家必看科普!微扑克辅助提高胜率,微扑克透牌(微扑克)原来有挂(有挂神器)-哔哩哔哩微扑克辅助提高胜...
查到实测辅助!微扑克辅助工具怎... 查到实测辅助!微扑克辅助工具怎么下载,微扑克有挂么(微扑克)确实有挂(有挂猫腻)-哔哩哔哩;1、微扑...
最新研发!微扑克有挂么,微扑克... 最新研发!微扑克有挂么,微扑克有挂么(微扑克)果然存在有挂(真的有挂)-哔哩哔哩1)微扑克有挂么辅助...
一分钟教你!微扑克辅助工具,微... 一分钟教你!微扑克辅助工具,微扑克透牌(微扑克)真是有挂(确实有挂)-哔哩哔哩;1、玩家可以在微扑克...
一分钟了解!微扑克ai分析器,... 一分钟了解!微扑克ai分析器,微扑克透牌(微扑克)总是是有挂(确实有挂)-哔哩哔哩1、微扑克ai分析...
科普攻略!微扑克有辅助透视,微... 科普攻略!微扑克有辅助透视,微扑克有挂么(微扑克)切实是真的有挂(有挂方法)-哔哩哔哩1、下载好微扑...
玩家必用!微扑克的辅助工具苹果... 玩家必用!微扑克的辅助工具苹果,微扑克有挂么(微扑克)真是存在有挂(有挂规律)-哔哩哔哩1、完成微扑...
揭秘真相!微扑克辅助工具,微扑... 揭秘真相!微扑克辅助工具,微扑克如何让系统发好牌(微扑克)确实真的有挂(讲解有挂)-哔哩哔哩1、进入...
避坑细节!微扑克辅助插件挂,微... 避坑细节!微扑克辅助插件挂,微扑克透牌(微扑克)其实是真的有挂(详细教程)-哔哩哔哩1、不需要AI权...