基于Xml方式Bean的配置-beanName个别名配置

SpringBean配置详解

Bean的基础配置

  • 例如前文涉及到的配置文件
复制代码
```XML
    <bean id="userService" class="com.example.Service.Impl.UserServiceImpl"/>
```
  • 此时存储到Spring容器(singleObjects单例池)中的beanName是userService,值是UserServiceImpl对象,可以根据beanName获取bean实例

    • 关键代码

      java 复制代码
              // 创建工厂对象
              DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
              // 创建读取器(读取xml文件中的bean对象)
              XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory); // 当前是XML配置的方式,将读取器与工厂绑定
              // 读取器读取对象给工厂
              reader.loadBeanDefinitions("application.xml");
              // 获取bean对象
              Object userService = beanFactory.getBean("userService");
              System.out.println(userService);
  • 如果不配置id,则Spring会把当前Bean实例全限定名作为beanName

    XML 复制代码
        <bean class="com.example.Service.Impl.UserServiceImpl"/>
    java 复制代码
            Object userService = beanFactory.getBean("com.example.Service.Impl.UserServiceImpl");
  • Bean的别名配置(几乎不使用)

    • 可以为当前bean配置多个别名、根据别名也可以获取bean对象

    XML 复制代码
        <bean id="userService" name="aaa,bbb" class="com.example.Service.Impl.UserServiceImpl">
    java 复制代码
            System.out.println(beanFactory.getBean("userService"));
            System.out.println(beanFactory.getBean("aaa"));
            System.out.println(beanFactory.getBean("bbb"));
    • 运行结果如下:

相关推荐
Dcs16 小时前
Java 中 UnaryOperator 接口与 Lambda 表达式的应用示例
java·后端
bagadesu18 小时前
使用Docker构建Node.js应用的详细指南
java·后端
没有bug.的程序员18 小时前
Spring Cloud Gateway 性能优化与限流设计
java·spring boot·spring·nacos·性能优化·gateway·springcloud
洛_尘19 小时前
JAVA EE初阶 2: 多线程-初阶
java·开发语言
Slow菜鸟19 小时前
Java 开发环境安装指南(五) | Git 安装
java·git
一只小阿乐20 小时前
react 封装弹框组件 传递数据
前端·javascript·react.js
lkbhua莱克瓦2420 小时前
Java基础——方法
java·开发语言·笔记·github·学习方法
533_20 小时前
[element-plus] el-tree 动态增加节点,删除节点
前端·javascript·vue.js
禁止摆烂_才浅20 小时前
前端开发小技巧-【JavaScript】- 获取元素距离 document 顶部的距离
前端·javascript·react.js
wshzd20 小时前
LLM之Agent(二十九)|LangChain 1.0核心组件介绍
前端·javascript·langchain