Spring IOC——bean对象的生命周期

bean对象的生命周期单例对象出生:当容器创建时对象出生活着:只要容器还在,对象一直活着死亡:容器销毁,对象消亡
[Java] 纯文本查看 复制代码
1
2
3
4
5
package com.ay.service;
 
public interface AccountService {
    public  void saveAccount();
}
 
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
package com.ay.service.impl;
 
import com.ay.service.AccountService;
 
public class AccountServiceImpl implements AccountService {
    @Override
    public void saveAccount() {
        System.out.println("方法创建成功了");
    }
 
    public AccountServiceImpl() {
        System.out.println("对象开始创建了");
    }
    public void init(){
        System.out.println("对象初始化");
    }
    public void destroy(){
        System.out.println("对象销毁");
    }
}
 
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
package com.ay.ui;
 
import com.ay.service.AccountService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class Client {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        AccountService as = (AccountService)ac.getBean("accountService");
        as.saveAccount();
        ac.close();
    }
}
 
[XML] 纯文本查看 复制代码
1
2
3
4
5
6
<?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 [url]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
    <bean id="accountService" class="com.ay.service.impl.AccountServiceImpl" scope="singleton" init-method="init" destroy-method="destroy"></bean>
</beans>

运行截图
Spring IOC——bean对象的生命周期
多例对象
  • 出生:当我们使用对象时spring框架为我们创建
  • 活着:对象只要在使用过程中就一直活着
  • 死亡:当对象长时间不用,且没有别的对象引用时,由java的垃圾回收器回收
    具体代码省略
    总结: 单例与多例跟懒汉式与饿汉式相似,可以相互理解。