原型模式——Spring源码分析

原型模式在Spring框架中源码分析

1 Spring中原型bean的创建,就是原型模式的应用

Monster

dart 复制代码
package com.baidu.spring.bean;
public class Monster {
    private Integer id = 10;
    private String nickname = "牛魔王";
    private String skill = "芭蕉扇";

    public Monster() {
        System.out.println("monster 创建 ..");
    }

    public Monster(Integer id, String nickname, String skill) {
        this.id = id;
        this.nickname = nickname;
        this.skill = skill;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getSkill() {
        return skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }

    @Override
    public String toString() {
        return "Monster{" +
                "id=" + id +
                ", nickname='" + nickname + '\'' +
                ", skill='" + skill + '\'' +
                '}';
    }
}

ProtoType

dart 复制代码
package com.baidu.spring.test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ProtoType {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");
        Object bean = applicationContext.getBean("id01");
        System.out.println("bean = " + bean);

        Object bean2 = applicationContext.getBean("id01");
        System.out.println("bean2 = " + bean2);

        System.out.println(bean == bean2);


    }

}
复制代码
bean.xml
dart 复制代码
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">


    <bean id="id01" class="com.baidu.spring.bean.Monster" scope="prototype" />

</beans>

debug执行

相关推荐
panxianren2 小时前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
sunshine22 girl4 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
省钱兄--zs4 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang4 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
sunshine22 girl5 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat5 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
泡茶喝茶写代码7 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据
\光辉岁月/8 小时前
7.javase-面向对象
java·开发语言
weixin_531094698 小时前
heap_4内存管理
java·开发语言·算法
程序员南飞8 小时前
win系统安装minio
java·数据结构·算法