通过@Configuration注解的方式让Spring调用Bean的有参构造函数

通过@Configuration注解的方式让Spring调用Bean的有参构造函数

老师 通过@Configuration注解的方式让一个Bean对象的初始化函数有参数 那么这些参数是不是必须是全局唯一的单例 并且把控制权交给了容器管理 否则容器怎么知道给这个初始化函数注入哪一个参数对象呢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
郭玉成 2020-04-12 22:24:57

有两个方案:第一个方案是全部用无参数构造,然后所有的参数不通过构造函数传入,而都通过成员变量的方式注入 第二个方案:@Configuration 自己去构建一个有参数构造函数,如果构造函数中的中的参数是单例的且单例可行,那么久不存在问题。如果构造函数中的参数还需要是多例的那么多例的还是需要开启多例。(多例传参我没有测试过一般构造中应该传入单例的)

第一个方案好,测试通过。

  • 提问者 Kely_Developer #1
    方案一 我是通过set方法设置的成员变量 注入的方式我想尝试一下 但是我不知道如何动态的注入 能给我看一下源码吗
    2020-04-13 07:58:31
7七月 2020-04-02 02:35:35

这需要具体问题具体讨论,你可以给一个具体的示例我们讨论下。

  • 提问者 Kely_Developer #1
    老师通过@Configuration的方式解决把控制权交给容器的Bean对象的有参数的构造方法的问题我还是没弄明白 刚开始听老师讲Spring的模式注解的时候我就觉得这里有问题 但是又不明白如何解决 昨天在群里听有个同学说可以通过代码在运行时动态控制Bean 我非常迫切的想了解这节课讲到的这种方案 非常希望老师能给截图看一下这种方案的关键的源码 如果能写篇文章或者在课程里讲一下就跪谢啦
    2020-04-02 08:28:10
  • 7七月 回复 提问者 Kely_Developer #2
    有两个方案:第一个方案是全部用无参数构造,然后所有的参数不通过构造函数传入,而都通过成员变量的方式注入 第二个方案:@Configuration 自己去构建一个有参数构造函数,如果构造函数中的中的参数是单例的且单例可行,那么久不存在问题。如果构造函数中的参数还需要是多例的那么多例的还是需要开启多例。(多例传参我没有测试过一般构造中应该传入单例的)
    2020-04-02 17:08:19
  • wj_user 回复 7七月 #3
    老师,这个问题我也有疑惑,比如我们项目中用到的couponChecker,如果使用configuration注解模式生成couponChecker对象的话,那么这个对象的参数coupon和userCoupon怎么注入到couponChecker对象中呢,coupon和userCoupon都不是单例的。
    2020-04-02 18:00:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师