spring学习疑问

1.spring bean的生命周期里面,接口DisposableBean的destroy方法在前面,还是自定义的销毁方法在前面?
书里面是自定义的在后面,实际代码是自定义的在前面。??

2.集合类里面的properties有什么作用?

3.@Autowired 注释报错
代码:
public RoleController2(@Autowired @Qualifier(“roleService3”) RoleService roleService) { this.roleService = roleService; }
注解报错:The annotation @Autowired is disallowed for this location
原因:
自动装配的语法要求:不允许在局部进行自动装配(即:只能写在method外class里)。
自动装配的动作都是在容器启动的时候,容器在读取配置文件和加载类的时候就需要进行装配了,如果将它放在方法内,它就成了局部的信息,对外是不可见的,无法进行装配,必须是成员变量,这样在加载的时候容器才检测到需要装配的变量。

4.约定优于配置?
开发人员仅需规定应用中不符约定的部分。
如果您所用工具的约定与你的期待相符,便可省去配置;反之,你可以配置来达到你所期待的方式。

5。spring
所谓ioc,就是有spring ioc 容器来负责对象的生命周期和对象之间的关系。
四个问题:
a.谁控制谁?
传统的开发模式下,我们都是直接new一个对象的方式来创建对象,也就是你依赖的对象直接由你你控制,有了ioc容器之后,就是有ioc容器来控制。所以这个问题答案就是ioc容器控制对象。
b.控制什么? 控制对象
c.为何是反转?
没有ioc的时候我们都是在自己对象中主动创建被依赖的对象,这是正转。但是有了ioc以后,所依赖的对象直接由ioc容器创建后注入到自己的对象中来,依赖的方式由原来的主动创建获取对象,变成被动的接受(由ioc容器创建的)对象。所以叫反转。
d.哪方面反转了?
所依赖对象的获取被反转了

被注入对象
ioc容器为被注入对象提供被依赖对象 有如下几种方式:
构造方法注入,setter方法注入,接口注入

spring ioc容器会默认自动初始化bean,默认值是false
spring先完成bean的定义和生成,然后寻找注入的资源。也就是当spring 生成所有的bean以后,如果发现这个朱姐,就会在bean中默认然后找到对应的类型,将其注入进来,这样就完成了依赖注入。

猜你喜欢

转载自blog.csdn.net/ademen/article/details/82802754