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、对战互娱有辅助吗透视辅助...
4分钟分享!蜀山挂件辅助,微乐... 4分钟分享!蜀山挂件辅助,微乐家乡自建房辅助app(切实存在有挂)-哔哩哔哩1、很好的工具软件,可以...
一分钟科普!友友联盟辅助软件下... 一分钟科普!友友联盟辅助软件下载,樱花之盛低价挂(原来真的有挂)-哔哩哔哩亲,关键说明,友友联盟辅助...
一分钟普及!传送屋激k有挂吗,... 一分钟普及!传送屋激k有挂吗,广西老友玩有破解视频(总是真的是有挂)-哔哩哔哩;1、广西老友玩有破解...
六分钟关于!新鸿狐辅助软件是真... 六分钟关于!新鸿狐辅助软件是真的吗,越乡游辅助器(切实有挂)-哔哩哔哩1、金币登录送、破产送、升级送...
第八分钟揭露!鸿狐拼十辅助,牛... 第八分钟揭露!鸿狐拼十辅助,牛总管辅助免费版(竟然真的是有挂)-哔哩哔哩1、完成牛总管辅助免费版透视...
九分钟必备!巴蜀跑的快怎样才拿... 九分钟必备!巴蜀跑的快怎样才拿好牌,微友辅助器免费版v2.0(本来真的有挂)-哔哩哔哩1、超多福利:...
第二分钟关于!广西老友麻将有挂... 第二分钟关于!广西老友麻将有挂吗,天天爱柳州辅助(确实真的有挂)-哔哩哔哩1、超多福利:超高返利,海...