Spring Bean的其他配置

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

范例:延迟加载 

部门类:

package com.jcn.vo;

public class Emp {

	    private Integer empno;
	    private String ename;
        public Emp() {
			System.out.println("***************");
		}
}

    
    

测试类:

public class TestEmp {

	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		//Emp vo = ctx.getBean("emp" , Emp.class);
		//System.out.println(vo);
	}
}

运行结果:***************

修改配置:


    
    

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

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

范例:观察初始化和销毁

public class Company {

	 public void init(){
	     System.out.println("=======初始化");
	 }
	 public void destroy(){
	     System.out.println("=======公司销毁");
	 }
}

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

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

运行结果:

=======初始化
com.jcn.vo.Company@5b87ed94

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

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(); //触发销毁
	}
	
}

运行结果:

=======初始化
com.jcn.vo.Company@5b87ed94
=======公司销毁

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

你可能感兴趣的:(#,spring全家桶,大学与Java那些年)