aware接口
获取bean自身信息(感知到自己)
常用BeanNameAware(获取bean名称)ApplicationContestAware(获取上下文)
bean自动装配
no(default):不做任何操作
byname:通过id名字匹配bean和属性
bytype:通过类型匹配bean和属性。多个相同,抛出异常,不能用此法;没有一致,无事发生。
constructor:类似bytype,应用于构造器参数。没有一致,抛出异常。
(注:区分this和super。 都是指针, this:成员名和形重名,this区分,本质是指向自己;super:指向父类,调用父类方法,例如:class A{void value(){}} class B extends A{super.value()} 。super()父类构造函数,super(,,,)父类有参构造函数)
例子:
<beans ......
default.autowire="byname">
<bean id="service" class="com......(位置)"></bean> //不用使用property或构造器
<bean id="DAO" class="com......(位置)"></bean> //@
</beans>
byname:service函数内直接声明DAO并调用即可,但如果service内声明的DAO名与@处id名不一致,调用不到DAO,什么都不做。
bytype: service函数内直接声明DAO并调用即可,但如果service内声明的DAO名与@处id名不一致,也会继续调用。
constructor:根据构造器内类型进行调用,所以类似bytype,与id无关。