(八)Bean的其他配置(了解)

        默认情况下只要是在applicationContext.xml文件里面配置"<bean>"都会在Spring的时候自动进行构造方法初始化,但是用户也可以实现自己的配置,让其在第一次使用的时候再进行初始化,这种操作称为延迟加载.

范例:延迟加载    

public class Emp {
	private Integer empno;
	private String ename;
}
        
	<bean id="emp" class="cn.zwb.vo.Emp" lazy-init="true">
		<property name="empno" value="7369"></property>
		<property name="ename" value="zwb"></property>
	</bean>

此时就表示emp这个对象进行了延迟加载,第一次使用这个bean的时候再进行加载

        那么除了这一特征之外,在Spring处理过程之中还可以进行自定义的初始化和销毁方法操作.例如:现在有一个类可以在类实例化对的时候自动执行一个方法进行特定1初始化调用, 或者在这个类对象不在需要的时候自动执行一个销毁的方法.进行资源的释放,

范例:观察初始化和销毁

package cn.zwb.vo;
public class Company {
	public void init(){
		System.out.println("=======初始化");
	}
	public void destroy(){
		System.out.println("=======公司销毁");
	}
}

        实际上设计的两个方法只是在Spring中才可以使用的,而实际的Java运行里面初始化会依靠构造方法,销毁会依靠finalize()方法.

范例:配置applicationContext.xml文件----需要明确的指定初始化与销毁的方法

	<bean id="company" class="cn.zwb.vo.Company" 
			init-method="init" 
			destroy-method="destroy"></bean>

        默认情况喜爱初始化的操作一定会默认的自动出现.但是销毁的操作必须明确的处理

范例:调用过程

package cn.zwb.TestFruit;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.zwb.vo.Company;

public class TestCompany {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
		Company vo=ctx.getBean("company",Company.class);
		System.out.println(vo);
		ctx.registerShutdownHook();//表示触发销毁.
	}
}

        这样的销毁操作在一段时间之内,成为了Spring整合开发的关键,用于进行数据库连接操作



猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80432251
今日推荐