开发者社区> 问答> 正文

奇怪一点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 11407 0
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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载