zoukankan      html  css  js  c++  java
  • Spring、Bean的生命周期

    1、默认情况下,在Bean容器被实例化的时候,bean对象将被创建:

    public class PersonServiceImpl implements PersonIService {
    
    	public PersonServiceImpl(){
    		System.out.println("初始化!!!");
    	}
    	@Override
    	public void helloSpring() {
    		System.out.println("Hello Spring!");
    	}
    }

    <bean id="personIService" class="cn.server.impl.PersonServiceImpl"/>

    测试:

    	@Test
    	public void test() {
    		ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
    		//PersonIService personIService=(PersonIService)ac.getBean("personIService");
    	}

    结果:



    2、设置bean的lazy-init属性可以决定Bean是的实例对象是否使用懒加载,默认lazy-init=“false”:   当lazy-init设置为True的时候,只有Bean被实例的时候才调用:

    	@Test
    	public void test() {
    		ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
    		PersonIService personIService=(PersonIService)ac.getBean("personIService");
    	}

    <bean id="personIService" class="cn.server.impl.PersonServiceImpl" lazy-init="true"/>

    3、在bean被实例之前和在bean实例之后都可以执行某些方法,只要设置bean的init-method属性和destroy-method方法即可:

    public class PersonServiceImpl implements PersonIService {
    
    	public void initBean(){
    		System.out.println("被实例之前调用");
    	}
    	public void destoryBean(){
    		System.out.println("实例被关闭之后调用");
    	}
    	@Override
    	public void helloSpring() {
    		System.out.println("Hello Spring!");
    	}
    }

    <bean id="personIService" class="cn.server.impl.PersonServiceImpl" 
    	lazy-init="false" init-method="initBean" destroy-method="destoryBean"/>

    测试代码:

    	@Test
    	public void test() {
    		AbstractApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
    		PersonIService personIService=(PersonIService)ac.getBean("personIService");
    		personIService.helloSpring();
    		ac.close();
    	}



  • 相关阅读:
    AUDIOqueue 为什么会播放一段时间就听不到声音
    逆序一位数数组求和
    求数组中两数之和等于target的两个数的下标
    iOS获取崩溃日志
    如何看iOS崩溃日志
    关于iOS刷新UI需要在主线程执行
    iOS内置麦克风选择方法
    贝叶斯深度学习-概述
    空间统计(Spatial Statistics)学习笔记(一)— 概述
    重采样技术—Bootstrap
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114742.html
Copyright © 2011-2022 走看看