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

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{@Overridepublic 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.lryc.cn/news/523395.html

相关文章:

  • 聊一聊如何适应AI时代
  • dl学习笔记:(4)简单神经网络
  • 电商项目高级篇08-springCache
  • 4.1 AI 大模型应用最佳实践:如何提升 GPT 模型使用效率与质量
  • Linux top命令cpu使用率计算底层原理
  • vue知识点总结
  • [实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()
  • llamafactory使用8张昇腾910b算力卡lora微调训练qwen2-72b大模型
  • C++,设计模式,【目录篇】
  • 《目标检测数据集下载地址》
  • C 语言的void*到底是什么?
  • Linux中的文件上传和下载
  • DDD - 微服务落地的技术实践
  • fgets、scanf存字符串应用
  • 鸿蒙动态路由实现方案
  • Spring-boot3.4最新版整合swagger和Mybatis-plus
  • 基于Java的高校实习管理平台
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
  • 【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)
  • SVGAPlayer error 处理
  • 2024年12月电子学会青少年机器人技术等级考试(二级)实际操作试卷
  • Swift 专题二 语法速查
  • Api网关Zuul
  • 01设计模式(D3_设计模式类型 - D3_行为型模式)
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测
  • 费解的开关
  • 【机器学习】机器学习引领数学难题攻克:迈向未知数学领域的新突破
  • Qt之QDjango-db的简单使用
  • 缓存、数据库双写一致性解决方案
  • SUnet: A multi-organ segmentation network based on multiple attention【医学图像分割】