zoukankan      html  css  js  c++  java
  • spring---生命周期

                        spring---生命周期

    1.lazy-init="true/false/default";

    2.init-method=" "//对象创建时调用

       destroy-method=" "

      问题:对象是什么时候创建的呢?

       lazy-init="true/false/default";

       配置文件:applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
       <bean id="p" class="com.Person" ></bean>
       <bean id="s" class="com.student" lazy-init="true"></bean>
       <bean id="w" class="com.Worker" lazy-init="false"></bean>
    </beans>

    测试:

    package com.life;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.Person;
    
    public class TestlifeDemo {
       @Test
       public void test01() {
           //启动spring容器,读取src文件下的applicationContext.xml
          ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
          
       }
    }

    测试结果:

            

    由测试结果知:

               当lazy-init=“false”  或默认不写时

               对象实在spring容器启动时创建的

    测试:

    package com.life;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.Person;
    import com.Worker;
    import com.student;
    
    public class TestlifeDemo {
       @Test
       public void test01() {
           //启动spring容器,读取src文件下的applicationContext.xml
          ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
          Person p = (Person) ac.getBean("p");
          student s = (student) ac.getBean("s");
          Worker w = (Worker) ac.getBean("w");
       }
    }

    测试结果:

        

    由测试结果知:

        当lazy-init=“true” 时,调用spring容器调用getBean方法时,对象才创建出来

    init-method=" "    destroy-method=" "

             配置文件:applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
       <bean id="p" class="com.Person" init-method="init" destroy-method="destroy"></bean>
    </beans>

        person.java

    package com;
    
    public class Person {
    
        public Person() {
            System.out.println("Person对象已创建完毕。。。");
        }
        public void init() {
            System.out.println("初始化方法");
        }
        public void destroy() {
            System.out.println("销毁方法");
        }
    
        public void say() {
            System.out.println("hello world....");
        }
      
    }

     测试:

    package com.life;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.Person;
    import com.Worker;
    import com.student;
    
    public class TestlifeDemo {
       @Test
       public void test01() {
           //启动spring容器,读取src文件下的applicationContext.xml
          ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
          Person p = (Person) ac.getBean("p");
          p.say();
       }
    }

    测试结果:

          

    总结:

             bean对象什么时候创建出来的呢?

               1.首先spring容器通过默认的构造函数创建对象

               2. init-method="init"   调用初始化方法

               3. talk()
               4. destroy-method="destroy"调用销毁方法

       

  • 相关阅读:
    Java原生网络编程
    网络协议
    SQL优化
    执行计划
    UDP client,UDP server, TCP server, TCP client
    Java使用TCP聊天程序
    Java使用UDP聊天程序
    First Bad Version
    对SNMP4J的一些封装
    Eclipse swt开发环境搭建
  • 原文地址:https://www.cnblogs.com/wwww2/p/12595098.html
Copyright © 2011-2022 走看看