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

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