一些ioc容器相关注解的理解模糊问题
来源:11-3 SpringIOC的应用
莨菽菽
2020-05-24
老师好:
老师原话:@Configuration就会把applicationConfig注入到容器,spring容器就根据这些配置来生成ioc容器去装配对应的bean。
问题1.这个意思是使用@Configuration会创建ioc容器?这么说每使用一个@Configuration就会有ioc容器,然后spring里面有多个ioc容器了么?
问题2.使用@Configuration是把ApplicationConfig类注入了ioc容器,然后使用@Bean又把Person类注入到容器;还是说@Configuration+@Bean才把Person类注入了IOC容器?
问题3:SpringBoot的@Component完全替代了原来的@Configuration+@Bean了么?@Configuration+@Bean还有什么独有的应用场景不?
问题4:之前我一直理解扫描注入的原来是,先是AOP切有@ComponentScan这个注解,然后使用AOP切面去切相关的@Component实现注入,这个理解是错的么?应该是@Component的就注入了IOC容器,然后@ComponentScan就是去IOC容器找相关的类,是这样理解么?
问题5:老师讲课说的Spring容器就是指IOC容器么?
1回答
-
翔仔
2020-05-25
同学好,
不是,主要是springIOC容器会认这些标签注解,扫描整个package,然后把这些注解标记的类创建好放入容器里。spring项目确实可以存在多个容器。
@Bean标记的方法会把Person类注入了IOC容器,但是首先所在类需要@Configuration标记,这需要看源码
并没有,两个属于不同用法。@Configuration+@Bean用于灵活的编码配置,比如根据不同的情况创建实现了同一个接口的不同bean
理解是正确的,ComponentScan主要是去指定要扫描的范围,然后在这个范围里面被@Configuration等注解标签标记的bean会被扫描近来
指的是spring里面IOC容器的具体实现
其实同学的这些问题,基本都能在我的新课 https://coding.imooc.com/class/420.html 里得到答案,而且更深刻,毕竟是从源码分析
022020-05-27
相似问题