spring容器 创建对象

来源:互联网 发布:零下九十度 知乎 编辑:程序博客网 时间:2024/05/22 17:49

方式一 使用无参构造器

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>


0 0
原创粉丝点击