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();
    	}



  • 相关阅读:
    nutch 存储到数据库
    66、多种多样的App主界面Tab(1)------ ViewPager实现Tab
    让TextView的drawableLeft与文本一起居中显示
    细说Java多线程之内存可见性
    八、图形与图像处理(2)
    65、TextView 字体设置不同颜色 --- 未完
    64、具有过渡动画效果的布局Layout( 2 )
    63、具有过渡动画效果的布局Layout
    62、常规控件(5)Navigation View –美观的侧滑视图
    61、常规控件(4)TabLayout-便捷实现标签
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114742.html
Copyright © 2011-2022 走看看