当前位置: 首页 > article >正文

Spring的Bean详解=Bean别名+作用范围+使用场景

目录

Bean的别名:id和name的地位等同

 Bean的作用范围:scope单例与非单例

 Bean的使用场景:什么时候交给容器?什么时候不交?​

 Bean的别名实践(含代码)


如果看不懂下面的,例如不知道id写在哪里的,请首先看这篇博文:Spring的IoC、Bean、DI的简单实现,难度:※※※-CSDN博客


 

Bean的别名:id和name的地位等同

 Bean的作用范围:scope单例与非单例

 Bean的使用场景:什么时候交给容器?什么时候不交?

 Bean的别名实践(含代码)

案例一:

 案例二:

<?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="cat" class="org.example.package2.Cat"/>
    <bean id="dog" class="org.example.package2.Dog"/>
    <bean id="animalSet" name="abc1234" class="org.example.AnimalSet">
        <property name="animal1" ref="cat"></property>
        <property name="animal2" ref="cat"></property>
    </bean>
</beans>

package org.example;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
    public static void main(String[] args) {
        ApplicationContext iocContext = new ClassPathXmlApplicationContext("applicationConfig.xml");
        AnimalSet animalSet = (AnimalSet) iocContext.getBean("abc1234");
        System.out.println(animalSet);
        animalSet.animalSetSound();

    }
}
package org.example;

import org.example.package1.Animal;

public class AnimalSet{
    Animal animal1;
    Animal animal2;

    public void animalSetSound(){
        animal1.sound();
        animal2.sound();
    }

    public void setAnimal1(Animal animal1) {
        this.animal1 = animal1;
    }
    public void setAnimal2(Animal animal2) {
        this.animal2 = animal2;
    }

}
package org.example.package2;
import org.example.package1.Animal;

public class Cat implements Animal{
    @Override
    public void sound(){
        System.out.println("cat sound");
    }
}
package org.example.package2;

import org.example.package1.Animal;

public class Dog implements Animal {
    public void sound() {
        System.out.println("dog sound");
    }
}
package org.example.package1;

public interface Animal {
    void sound();
}


http://www.kler.cn/a/510593.html

相关文章:

  • 深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)
  • Spring Boot 集成 MongoDB:启动即注入的便捷实践
  • 【LLM-RL】DeepSeekMath强化对齐之GRPO算法
  • 为AI聊天工具添加一个知识系统 之48 蒙板程序设计(第二版):Respect九宫格【社会形态:治理】
  • 开发神器之cursor
  • 登录校验Cookie、Session、JWT
  • 4.Proto 3 语法详解
  • opencv笔记2
  • htmlcssJavaScript网页开发:年会手机号抽奖案例
  • ANSYS FLUENT学习笔记(八)-实战案例-网格划分
  • 使用 CFX 中的标量传输方程对染料冲洗数值建模:以主动脉弓血流为例
  • python轻量级框架-flask
  • 【AI论文】生成式视频模型是否通过观看视频学习物理原理?
  • 【Linux】Linux入门(2)常见指令
  • Jupter安装
  • vscode的字体图标库-icomoon
  • CSS 动画相关属性
  • 【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用
  • 准备面试3个月,加油!
  • vue3+elementPlus之后台管理系统(从0到1)(day2)
  • 常用的UI自动化测试框架是哪些?有什么优缺点?如何选择?
  • 20250118 PPT画的论文插图如何导出高分辨率图片:修改电脑注册表
  • LeetCode:2266. 统计打字方案数(DP Java)
  • Swift语言的物联网
  • Unity编辑器缩放设置
  • ChatGPT Prompt 编写指南