开发者社区 问答 正文

奇怪一点spring boot 抽象类(没有归spring管),注入属性protect Service service,然后有A,B,C子类(归spring管理),在A子类中注入也注入属性service,其他子类没有注入此属性也可以直接使用,spring boot是在创建完bean时,setter属性进去,也会连同父类注入的属性也一起设置么?有点费解

奇怪一点spring boot 抽象类(没有归spring管),注入属性protect Service service,然后有A,B,C子类(归spring管理),在A子类中注入也注入属性service,其他子类没有注入此属性也可以直接使用,spring boot是在创建完bean时,setter属性进去,也会连同父类注入的属性也一起设置么?有点费解

展开
收起
李博 bluemind 2019-02-22 11:36:42 11691 分享 版权
3 条回答
写回答
取消 提交回答
  • 首先父类是抽象类时在spring容器启动时,不会初始化为bean的,所以父类中不会自动setter进protect Service service;
    然后,子类继承了父类,故子类A中会自动setter进protect Service service;
    B、C继承了父类,故B、C在初始化为Bean时,也会分别自动setter进protect Service service;
    所以,不是父类的注入属性被设置了,而是分别在子类中设置了三次;

    2019-07-17 23:29:04
    赞同 展开评论
  • spring boot很多开箱即用的特性,导致默认的配置很难找,你可以看下annotation对应的实现,应该是有设置的

    2019-07-17 23:29:04
    赞同 展开评论
  • 路过

    2019-07-17 23:29:04
    赞同 展开评论