1.ioc:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。不通过new来创建,而是通过spring容器来创建,
ioc:依赖注入,是控制反转的一种实现方式,目的是创建对象并且组装对象之间的关系。所谓依赖注入,就是由ioc容器在运行期间,动态的将某种依赖关系注入到对象之中。
2.spring的注入:设值注入,同过set方法。
构造器注入,通过构造方法。
3.bean的生命周期:定义:<bean>标签
初始化:ioc容器在加载<bean>标签时初始化 。配置所有bean的初始化方法:default-init-method="init"配 置单个bean的初始化方法 init-method="";or implement InitializingBean 覆盖strat方法
当同时配置了3种初始化其中default-init-method无效。
使用:调用某个bean的某个方法。
销毁:关闭容器中所有bean的实例:配置所有bean的销毁方法:default-destroy-method="destroy"配 置单个bean的销毁方法 destroy-method="destroy"; or implement DisposableBean 覆盖stop方法
4.bean的作用域:singleton:单例,一个bean容器只存在一份。
prototype:每次请求(每次使用)都会创建新的实例,且destroy方法不生效。
5.bean的自动装配:no,不做任何操作。
byname,根据属性名自动装配。此选项将检查容器并根据名字查找于属性完全一致的bean,并将其与属性自动装配。
bytype,如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个类型的bean,那么抛出异常,并指出不能使用bytype进行自动装配;如果没有找到bean,就什么都不发生
constructor:与bytype方式类似,不同之处在于它应用于构造器参数,如果容器中没有找到与构造器参数一致的bean,那么抛出异常。
6.@autowired注解可用于list,map,具体实现一个接口多个实现类,注入时成员变量的类型为list,map泛型是接口。
@order可以用在实现类上,来确定实现类的运行步骤。但只能用于list集合,不能用于map集合。
7.@Qualifier:按类型装配可能有多个bean的实例的情况,可以使用@Qualifire注解缩小范围或者指定为一,也可以用于指定单独的构造器参数或方法参数。
可用于注解集合类变量。
具体使用,配合@auto wired来使用,@Qualifier用于@auto wired下面,以6为例在@Qualifier(具体的实现类)
8.aop,什么是aop
面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
主要的功能:日志记录,性能统计,安全控制,事务处理,异常处理。
预编译:AspectJ.
运行期动态代理(jdk动态代理和CGlib动态代理):SpringAop,JbossAop
AspectJ注解方式使用pointcut,advice。