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框架为我们创建
- 活着:对象只要在使用过程中就一直活着
- 死亡:当对象长时间不用,且没有别的对象引用时,由java的垃圾回收器回收
具体代码省略
总结: 单例与多例跟懒汉式与饿汉式相似,可以相互理解。