方式一 使用无参构造器
package first;
public class Student {
public Student() {
System.out.println("Student()");
}
}
<!--
使用无参构造器创建对象
id属性:bean的名称,要求唯一
class属性:类的全限定名
-->
<bean id="stu1" class="first.Student"/>
方式二 使用静态工厂方法
<!--
使用静态工厂方法创建对象
factory-method属性:指定一个静态方法.
spring容器会调用静态方法来创建对象
-->
<bean id="cal1" class="java.util.Calendar" factory-method="getInstance">
</bean>
方式三 使用实例工厂方法
<bean id="cal1" class="java.util.Calendar" factory-method="getInstance">
</bean>
<!--
使用实例工厂方法创建对象
factory-bean属性:指定一个bean的id.
factory-method属性:指定一个方法
spring容器会调用bean对应的方法来创建对象
-->
<bean id="time1" factory-bean="cal1" factory-method="getTime">
</bean>
作用域
<!--
scope属性:配置作用域.
缺省值:singleton(一个bean值创建一个实例)
如果值为prototype(原型)(一个bean会创建多个实例)
-->
<bean id="s1" class="scope.ScopeBean" scope="prototype"/>
生命周期及延迟加载
package scope;
public class ExampleBean {
public ExampleBean() {
System.out.println("测试()");
}
public void init(){
System.out.println("init()");
}
public void destroy(){
System.out.println("destroy()");
}
}
<!--
init-method属性:指定初始化方法
destroy-method属性:指定销毁方法
lazy-init属性:指定是否延迟加载,如果值为true,表示延迟加载
-->
<bean id="example" class="scope.ExampleBean" init-method="init" lazy-init="false" destroy-method="destroy" scope="singleton"></bean>