基于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"));
    • 运行结果如下:

相关推荐
芭拉拉小魔仙4 小时前
企业级Vue项目的状态管理:从原理到实战架构
前端·vue.js·架构
恋猫de小郭4 小时前
丰田正在使用 Flutter 开发游戏引擎 Fluorite
android·前端·flutter
Frostnova丶4 小时前
LeetCode 190.颠倒二进制位
java·算法·leetcode
闻哥5 小时前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
hrhcode5 小时前
【Netty】五.ByteBuf内存管理深度剖析
java·后端·spring·springboot·netty
扶苏10025 小时前
Vue 3 响应式原理深度解析
前端·javascript·vue.js
NEXT065 小时前
React 性能优化:图片懒加载
前端·react.js·面试
PineappleCoder5 小时前
别让字体拖了后腿:FOIT/FOUT 深度解析与字体加载优化全攻略
前端·性能优化
道亦无名6 小时前
aiPbMgrSendAck
java·网络·数据库
发现你走远了6 小时前
Windows 下手动安装java JDK 21 并配置环境变量(详细记录)
java·开发语言·windows