在Spring中 Setter方式注入和构造器注入的区别,面试题背这个准没错,可以说的是最全的了,奉劝你还是别查了,没有一个比我这个说的好的,都在一顿抄

本文探讨了Java中setter方法与构造器注入的区别,包括它们在依赖关系上的不同,以及各自的优缺点。setter方式适合弱依赖,允许对象在没有所有依赖时也能创建,而构造器注入强制在实例化时完成所有依赖的设置,适用于强依赖关系。构造器注入更利于依赖对象的不可变性,以及确保对象在使用前已完成初始化。面试中理解这些概念对于展示你的Java知识深度很有帮助。
摘要由CSDN通过智能技术生成
  1. Setter方式要对应的bean拥有set方法,而构造器方式则要拥有对应的构造器
  2. setter方式更加直观,而构造器方式更加臃肿,因为需要将全部依赖设置进来.
  3. setter方式一般用在弱依赖关系上,如果没有对应依赖对象,主对象仍然可以执行,而构造器是强依赖关系,在new一个对象的时候,需要用到有参构造,有参构造是必须传入参数的,不然会报错.
  4. 构造器依赖是官方推荐的时候依赖,除了刚才说的,必须传输有参构造器里的参数,可以监测依赖不为空;其次我们可以将依赖对象赋值给final对象,使依赖不可变;还有,我们可以使得主对象在使用之前,必须初始化完成依赖对象,因为使用对象之前,必须new这个对象,而new这个对象就会调用构造方法.

面试题背这个准没错,可以说的是最全的了,奉劝你还是别查了,没有一个比我这个说的好的,都在一顿抄

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
setter注入构造器注入是依赖注入的两种常见方式setter注入是通过在bean的变量上使用注解进行依赖注入,本质上是通过反射的方式直接注入到field。这种方式在开发比较常见,但是Spring团队并不推荐使用。例如,可以使用@Autowired注解来实现setter注入。\[1\] 构造器注入是通过在bean的构造器上使用注解进行依赖注入。这种方式是通过在创建bean实例时,将依赖的对象作为构造器的参数传入。相比于setter注入构造器注入更加灵活和可控,可以在创建对象时就完成依赖注入。\[2\] 关于setter注入构造器注入面试题,可能会涉及到它们的优缺点、适用场景以及如何选择使用哪种方式等。在回答这类问题时,可以根据实际情况进行分析和比较,提出自己的观点和理由。同时,也可以参考一些面试资料,如《Java面试BAT通关手册》,来加深对这些概念的理解和应用。\[3\] #### 引用[.reference_title] - *1* *3* [Spring官方为什么建议构造器注入?](https://blog.csdn.net/qq_42914528/article/details/119156642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Spring 官方为什么建议构造器注入?](https://blog.csdn.net/qq_37217713/article/details/119657549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值