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.9分钟了解!微乐陕西三带透... 1.9分钟了解!微乐陕西三带透视功能插件,微乐陕西三带一贯是有透视插件(有辅助挂分析)1、微乐陕西三...
详细说明!永乐跑胡子辅助功能脚... 详细说明!永乐跑胡子辅助功能脚本,永乐跑胡子原来存在有辅助脚本(果真有辅助挂)1、实时永乐跑胡子透视...
揭秘关于!白人斗神兽辅助功能教... 揭秘关于!白人斗神兽辅助功能教程,白人斗神兽确实是真的有辅助教程(有挂辅方法)1、打开软件启动之后找...
技术分享!鼎盛棋牌开挂功能插件... 技术分享!鼎盛棋牌开挂功能插件,鼎盛棋牌总是是有开挂插件(有辅助挂攻略)1)鼎盛棋牌辅助插件:进一步...
一分钟了解!祺友互娱辅助器功能... 一分钟了解!祺友互娱辅助器功能app,祺友互娱切实真的是有辅助器app(有辅助挂细节);祺友互娱能透...
玩家必备科普!八喜休闲透视功能... 玩家必备科普!八喜休闲透视功能神器,八喜休闲果然是真的有透视神器(详细教程辅助)该软件可以轻松地帮助...
攻略讲解!大唐麻将开挂功能插件... 攻略讲解!大唐麻将开挂功能插件,大唐麻将真是有开挂插件(有辅助挂分享)1)大唐麻将有没有挂:进一步探...