【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对象的方式需要确保获取对象的唯一性

相关推荐
鸽鸽程序猿1 分钟前
【刷题册】三
java·刷题
ruleslol3 分钟前
java中调用uri请求的几种常见的方法
java
资生算法程序员_畅想家_剑魔3 分钟前
Java常见技术分享-10-装饰器模式
java·开发语言·装饰器模式
ss2734 分钟前
ThreadPoolExecutor七大核心参数:从源码看线程池的设计
java·数据库·算法
林shir7 分钟前
Java基础1.4-运算符
java·开发语言
ldj202014 分钟前
springboot logback 设置日志级别
java·spring boot·logback
C雨后彩虹19 分钟前
字符串拼接
java·数据结构·算法·华为·面试
遥远_19 分钟前
一次高并发压垮系统的排查与重生(上)
java·微服务·性能优化·高并发·限流·qps
C雨后彩虹36 分钟前
ConcurrentHashMap入门:高并发场景的 HashMap替代方案
java·数据结构·哈希算法·集合·hashmap