A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马