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

相关推荐
愿天垂怜几秒前
【C++】C++11引入的新特性(1)
java·c语言·数据结构·c++·算法·rust·哈希算法
CoderJia程序员甲1 分钟前
重学SpringBoot3-Spring Retry实践
java·spring boot·spring·retry·重试机制
淡写青春2095 分钟前
计算机基础---进程间通信和线程间通信的方式
java·开发语言·数据结构
明月清风徐徐7 分钟前
Vue实训---2-路由搭建
前端·javascript·vue.js
《源码好优多》9 分钟前
基于Java Springboot未央商城管理系统
java·开发语言·spring boot
^Lim14 分钟前
esp32 JTAG 串口 bootload升级
java·linux·网络
王解16 分钟前
速度革命:esbuild如何改变前端构建游戏 (1)
前端·vite·esbuild
江-小北18 分钟前
Java基础面试题04:Iterator 和 ListIterator 的区别是什么?
java·开发语言
wmd1316430671222 分钟前
IDEA插件CamelCase,快速转变命名格式
java·ide·intellij-idea
葡萄城技术团队23 分钟前
使用 前端技术 创建 QR 码生成器 API1
前端