Spring基础——XML给Bean起别名

id,name标识Bean

  • 在Spring IoC容器中Bean都会最少有一个标识符我们不需要明确的给Bean提供一个name或者id,容器会自动给Bean生成一个唯一的名字,但是如果要通过ref引用指定Bean的名称,那就必须要我们自己手动命名(不提供名字的引用可以是由自动注入 autowire来完成对Bean的引用)
  • 我们给Bean命名的时候可以通过id和name来制定Bean的标识,id能精确的定位一个bean,因此只能传入一个标识虽然xml解析不一定会指定id的唯一性,但Spring容器会在启动的时候强制执行id的唯一性name可以是多个,用逗号(,)、分号(;)或空格分隔。
xml 复制代码
<bean id="xmlBean" name="beanTest beanHello" class="com.nobugnolife.bean.impl.XmlBeanImpl"/>

Bean的命名规则 按照Java标准开发的惯例,以实例字段名的方式命名bean,也就是以小写字母开头,然后使用驼峰命名法,比如helloWorld,userDao,userService。
这种命名方式不仅仅是方面阅读和理解,同时Spring自家内置的一些应用如Spring AOP也会通过这种命名方式来给我们带来一些便利。
而且在classpath中的组件扫描(component scanning),Spring为未命名的组件生成Bean名称,也遵循如上的规则,取简单的类名并将其初始字符变成小写。然而,在特殊情况下,当有一个以上的字符,并且第一个和第二个字符都是大写时,原来的大小写会被保留下来。这些规则与 java.beans.Introspector.decapitalize所定义的规则相同。

在Bean定义之外给Bean起别名

  • 在bean的定义中我们可以通过id和name给bean命名,但在系统特别庞大的时候开发会将系统分割成多个子系统,但子系统又需要主系统的同一个引用,这时候会将子系统设置一个别名,换句话说就是给name或id设置别名
  • 在这种情况下我们使用alias给Bean定义必须保证Bean是在同一个容器中
xml 复制代码
<alias name="xmlBean" alias="microA_xmlBean"/>
相关推荐
用户8307196840824 分钟前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
带刺的坐椅39 分钟前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网2 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java
孔明click332 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
程序猿阿越3 小时前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字3 小时前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长3 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
NE_STOP4 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室4 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
sTone873754 小时前
web后端开发概念: VO 和 PO
java·后端·架构