bean对象的生命周期单例对象出生:当容器创建时对象出生活着:只要容器还在,对象一直活着死亡:容器销毁,对象消亡[Java] 纯文本查看 复制代码 package com.ay.service;
public interface AccountService {
public void saveAccount();
}
[Java] 纯文本查看 复制代码 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] 纯文本查看 复制代码 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] 纯文本查看 复制代码 <?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的垃圾回收器回收
具体代码省略
总结: 单例与多例跟懒汉式与饿汉式相似,可以相互理解。
|