一、spring-IOC的方法注入
1、method方法注入
方法注入:通过方法注入实现抽象类的方法,从而实例化抽象类的对象。
<bean id="dog" class="com.mao.spring.model.Dog">
<property name="id" value="3" />
</bean>
<bean id="p3" class="com.mao.spring.model.Person">
<property name="id" value="103" />
<property name="name" value="杨仁杰" />
<lookup-method name="getDog" bean="dog" />
</bean>
2、方法替换
<bean id="rep" class="com.mao.spring.model.Replacer" />
<bean id="p4" class="com.mao.spring.model.Person">
<property name="id" value="104" />
<property name="name" value="杨艳蒙" />
<replaced-method name="getDog" replacer="rep" />
</bean>
二、bean之间的关系
1、引用使用ref参考即可
2、继承
在继承中,子bean需要声明parent=“父bean的id”,而父bean需要声明abstract=“true”
<bean id="p1" class="com.mao.spring.model.People" abstract="true">
<property name="id" value="101" />
<property name="name" value="王宏博" />
<property name="age" value="21" />
<property name="className" value="3年级1班" />
</bean>
<bean id="p2" parent="p1">
<property name="id" value="102" />
<property name="name" value="梁光超" />
</bean>
子bean没写的会继承父bean,自定义的不会继承
3、依赖 被依赖的bean,必须能够实例化,才能够被依赖。depends-on=“所依赖bean的id”
<bean id="p3" class="com.mao.spring.model.People" depends-on="d1">
<property name="id" value="103" />
<property name="name" value="杨森" />
<property name="age" value="25" />
<property name="className" value="3年级2班" />
</bean>
<bean id="d1" class="com.mao.spring.model.Dog">
<property name="id" value="12580" />
</bean>
三、bean的作用范围
Spring bean 作用域默认是 单例 singleton; 可以通过配置 prototype ,实现多例;
1,singleton Spring ioc 容器中仅有一个 Bean 实例,Bean 以单例的方式存在;
2,prototype 每次从容器中调用 Bean 时,都返回一个新的实例;非单例模式
3,request 每次 HTTP 请求都会创建一个新的 Bean;
4,session 同一个 HTTP Session 共享一个 Bean;
5,global session 同一个全局 Session 共享一个 Bean,一般用于 Portlet 应用环境;
6,application 同一个 Application 共享一个 Bean;