当前播放: 63 | 限定注入:如何限定Bean名称注入?如何实现Bean逻辑分组注入?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Spring Framework总览 (12讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 课前准备:学习三件套(工具、代码与大脑)
免费
04 | 特性总览:核心特性、数据存储、Web技术、框架整合与测试
免费
05 | Spring版本特性:Spring各个版本引入了哪些新特性?
免费
06 | Spring模块化设计:Spring功能特性如何在不同模块中组织?
07 | Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?
08 | JDK API实践:Spring怎样取舍Java I/O、集合、反射、动态代理等API的使用?
09 | Java EE API整合:为什么Spring要与“笨重”的Java EE共舞?
10 | Spring编程模型:Spring实现了哪些编程模型?
11 | Spring核心价值:我们能从Spring Framework中学到经验和教训呢?
12 | 面试题精选
第二章:重新认识IoC (9讲)
13 | IoC发展简介:你可能对IoC有些误会?
14 | IoC主要实现策略:面试官总问IoC和DI的区别,他真的理解吗?
15 | IoC容器的职责:IoC除了依赖注入,还涵盖哪些职责呢?
16 | IoC容器的实现:IoC容器是开源框架的专利吗?
17 | 传统IoC容器实现:JavaBeans也是IoC容器吗?
18 | 轻量级IoC容器:如何界定IoC容器的“轻重”?
19 | 依赖查找 VS. 依赖注入:为什么 Spring 总会强调后者,而选择性忽视前者?
20 | 构造器注入 VS. Setter 注入:为什么 Spring 官方文档的解读会与作者的初心出现偏差?
21 | 面试题精选
第三章:Spring IoC容器概述 (9讲)
22 | Spring IoC依赖查找:依赖注入还不够吗?依赖查找存在的价值几何?
23 | Spring IoC依赖注入:Spring提供了哪些依赖注入模式和类型呢?
24 | Spring IoC依赖来源:依赖注入和查找的对象来自于哪里?
25 | Spring IoC配置元信息:Spring IoC有哪些配置元信息?它们的进化过程是怎样的?
26 | Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器?
27 | Spring应用上下文:ApplicationContext除了IoC容器角色,还提供哪些特性?
28 | 使用Spring IoC容器:选BeanFactory还是ApplicationContext?
29 | Spring IoC容器生命周期:IoC容器启停过程中发生了什么?
30 | 面试题精选
第四章:Spring Bean基础 (11讲)
31 | 定义Bean:什么是BeanDefinition?
32 | BeanDefinition元信息:除了Bean名称和类名,还有哪些Bean元信息值得关注?
33 | 命名Spring Bean:id和name属性命名Bean,哪个更好?
34 | Spring Bean的别名:为什么命名Bean还需要别名?
35 | 注册Spring Bean:如何将BeanDefinition注册到IoC容器?
36 | 实例化Spring Bean:Bean实例化的姿势有多少种?
37 | 初始化Spring Bean:Bean初始化有哪些方式?
38 | 延迟初始化Spring Bean:延迟初始化的Bean会影响依赖注入吗?
39 | 销毁Spring Bean: 销毁Bean的基本操作有哪些?
40 | 回收Spring Bean:Spring IoC容器管理的Bean能够被垃圾回收吗?
41 | 面试题精选
第五章:Spring IoC依赖查找(Dependency Lookup) (9讲)
42 | 依赖查找的今世前生:Spring IoC容器从Java标准中学到了什么?
43 | 单一类型依赖查找:如何查找已知名称或类型的Bean对象?
44 | 集合类型依赖查找:如何查找已知类型多个Bean集合?
45 | 层次性依赖查找:依赖查找也有双亲委派?
46 | 延迟依赖查找:非延迟初始化Bean也能实现延迟查找?
47 | 安全依赖查找
48 | 内建可查找的依赖:哪些Spring IoC容器内建依赖可供查找?
49 | 依赖查找中的经典异常:Bean找不到?Bean不是唯一的?Bean创建失败?
50 | 面试题精选
第六章:Spring IoC依赖注入(Dependency Injection) (16讲)
51 | 依赖注入的模式和类型:Spring提供了哪些依赖注入的模式和类型?
52 | 自动绑定(Autowiring):为什么Spring会引入Autowiring?
53 | 自动绑定(Autowiring)模式:各种自动绑定模式的使用场景是什么?
54 | 自动绑定(Autowiring)限制和不足:如何理解和挖掘官方文档中深层次的含义?
55 | Setter方法依赖注入:Setter注入的原理是什么?
56 | 构造器依赖注入:官方为什么推荐使用构造器注入?
57 | 字段注入:为什么Spring官方文档没有单独列举这种注入方式?
58 | 方法注入:方法注入是@Autowired专利吗?
59 | 接口回调注入:回调注入的使用场景和限制有哪些?
60 | 依赖注入类型选择:各种依赖注入有什么样的使用场景?
61 | 基础类型注入:String和Java原生类型也能注入Bean的属性,它们算依赖注入吗?
62 | 集合类型注入:注入Collection和Map类型的依赖区别?还支持哪些集合类型?
63 | 限定注入:如何限定Bean名称注入?如何实现Bean逻辑分组注入?
64 | 延迟依赖注入:如何实现延迟执行依赖注入?与延迟依赖查找是类似的吗?
65 | 依赖处理过程:依赖处理时会发生什么?其中与依赖查找的差异在哪?
66 | @Autowired注入:@Autowired注入的规则和原理有哪些?
63 | 限定注入:如何限定Bean名称注入?如何实现Bean逻辑分组注入?

63 | 限定注入:如何限定Bean名称注入?如何实现Bean逻辑分组注入?

小马哥
《Spring Boot 编程思想》作者
239讲 约2500分钟7147
单独订阅¥199
2人成团¥129
本节摘要
登录 后留言

精选留言(3)

  • 阿土
    allUsers应该是4个bean才是对的。@Autowired注解会找到BeanFactory中所有的同类型bean注入进去,不管是否分组,这里只有两个bean应该是Annotation跟xml配置哪个地方冲突了。我在本地只使用Annotation方式验证的结论是不加Qualifier的集合字段会获取到所有的Users的(没有跑老师的demo,自己写的)
    public class QualifierDemo {
        @Autowired
        private Collection<CallerInfo> callerInfos;

        @Autowired
        @Qualifier("group1")
        private Set<CallerInfo> group1Beans;

        @Autowired
        @Qualifier("group2")
        private List<CallerInfo> group2Beans;


        public static void main(String[] args) {
            AnnotationConfigApplicationContext configApplicationContext = new AnnotationConfigApplicationContext();
            configApplicationContext.register(QualifierDemo.class);
            configApplicationContext.refresh();

            QualifierDemo qualifierDemo = configApplicationContext.getBean(QualifierDemo.class);
            System.err.println("qualifierDemo.callerInfos" + qualifierDemo.callerInfos);
            System.err.println("qualifierDemo.group1Beans" + qualifierDemo.group1Beans);
            System.err.println("qualifierDemo.group2Beans" + qualifierDemo.group2Beans);
            configApplicationContext.close();
        }

        @Bean
        @Qualifier("group1")
        public CallerInfo bean1() {
            return createCallerInfo("bean1");
        }

        @Bean
        @Qualifier("group1")
        public CallerInfo bean2() {
            return createCallerInfo("bean2");
        }

        @Bean
        @Qualifier("group2")
        public CallerInfo bean4() {
            return createCallerInfo("bean4");
        }

        @Bean
        @Qualifier("group2")
        public CallerInfo bean6() {
            return createCallerInfo("bean6");
        }

        @Bean
        public CallerInfo bean7() {
            return createCallerInfo("bean7");
        }

        @Bean
        @Qualifier
        public CallerInfo bean10() {
            return createCallerInfo("bean10");
        }

        private static CallerInfo createCallerInfo(String appName) {
            CallerInfo callerInfo = new CallerInfo();
            callerInfo.setAppName(appName);
            return callerInfo;
        }
    2020-02-13
    2
  • LQS KF
    老师,关于视频中的"allUsers",我觉得应该是会打印出所有的User类型对象,视频中没打印出来是因为本身注解配置类中使用"@Bean"添加的那几个User在配置类应用属性注入的时候还还有实例化到容器中。我将其申明放到其他配置类即可生效。
    2020-02-15
  • 你就当我是浮夸吧
    🐴老师,我发现一个比较奇怪的现象,就是当去除加载xml资源这段逻辑之后,allUsers是可以输出 user7~9的,
    混合xml和annotation加载两种方式bean之后,allUsers反而只能拿到xml中定义的user和superUser了,这是不是框架的一个缺陷啊?

    作者回复: 不是缺陷,通常 XML 会优先加载

    2020-02-13
收起评论
看过的人还看
Java核心技术面试精讲

杨晓峰  前Oracle首席工程师

43讲 | 44337 人已学习

拼团 ¥79 原价 ¥99
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 46812 人已学习

拼团 ¥79 原价 ¥99
玩转Spring全家桶

丁雪丰  平安壹钱包高级架构师,《Spring Boot实战》《Spring攻略》译者,InfoQ社区编辑

123讲 | 26059 人已学习

拼团 ¥99 原价 ¥129
设计模式之美

王争  前Google工程师,《数据结构与算法之美》专栏作者

100讲 | 20304 人已学习

拼团 ¥129 原价 ¥199