【Spring】第三弹:基于 XML 获取 Bean 对象

一、获取 Bean 对象

1.1 根据名称获取 Bean 对象

由于 id 属性指定了 bean 的唯一标识,所以根据 bean 标签的 id 属性可以精确获取到一个组件对象。

1.确保存在一个测试类:

java 复制代码
public class HelloWorld {

    public void sayHello(){
        System.out.println("helloworld");
    }
}

2.通过名称获取 Bean 对象

java 复制代码
<?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="helloWorld" class="Test.HelloWorld"></bean>
</beans>

1.2 根据类型查找 Bean 对象

java 复制代码
public static void main(String[] args) {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
    //HelloWorld helloWorld = (HelloWorld)applicationContext.getBean("helloWorld");
    HelloWorld helloWorld =(HelloWorld)applicationContext.getBean(HelloWorld.class);
            helloWorld.sayHello();
    log.info("日志输出完成");
}

1.3 根据名称和类型查找 Bean 对象

java 复制代码
public static void main(String[] args) {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
    //HelloWorld helloWorld = (HelloWorld)applicationContext.getBean("helloWorld");
    //HelloWorld helloWorld =(HelloWorld)applicationContext.getBean(HelloWorld.class);
    HelloWorld helloWorld =(HelloWorld)applicationContext.getBean("helloWorld",HelloWorld.class);
    helloWorld.sayHello();
    log.info("日志输出完成");
}

1.4 如果存在相同类型的多个Bean对象

1.类型相同名称不同的多个Bean对象,可以通过名称的不同查找到对象

2.类型相同名称不同的多个Bean对象,如果通过类型查找会报错:

3.建议根据 名称+类型 的方式进行Bean对象的查找

获取Bean对象的方式需要确保获取对象的唯一性

相关推荐
Liii4037 分钟前
Java学习——数据库查询操作
java·数据库·学习
PXM的算法星球31 分钟前
Java爬虫抓取B站视频信息
java·windows·爬虫
皮卡兔子屋1 小时前
redis过期删除、内存淘汰、双写一致性---java
java·redis·mybatis
whysqwhw1 小时前
手机如何抓包
java
kevindanglu1 小时前
Spring相关面试题
java·spring boot·spring
奔跑的废柴1 小时前
LeetCode 452. 用最少数量的箭引爆气球 java题解
java·算法·leetcode·贪心算法·贪心
neoooo1 小时前
Spring Boot 整合 Redis 实现附近位置查找 (LBS功能)
java·redis·后端
顾言1 小时前
23种设计模式中的状态模式
java·后端
Grey Zeng1 小时前
Java SE 24 新增特性
java·jdk·jdk新特性·jdk24
敖云岚2 小时前
【Spring】第四弹:基于XML文件注入Bean对象
xml·java·spring