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的垃圾回收器回收
具体代码省略
总结: 单例与多例跟懒汉式与饿汉式相似,可以相互理解。