Spring IoC 容器中指定别名的方式:
- xml <bean> name 属性使用 空格、英文逗号(,)、英文分号(;) 分隔
- <alias name="user1" alias="user5"/> 指定
示例代码:
spring xml 配置
<bean name="user1,user2 user3;user4" class="constxiong.User">
<property name="id" value="1"/>
<property name="name" value="constxiong"/>
</bean>
<alias name="user1" alias="user5"/>
<context:component-scan base-package="constxiong"/>
测试代码:
/**
* 测试 Bean 的别名
* @author ConstXiong
*/
@Configuration
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring-bean-name-alias.xml");
User user1 = context.getBean("user1", User.class);
User user2 = context.getBean("user2", User.class);
User user3 = context.getBean("user3", User.class);
User user4 = context.getBean("user4", User.class);
User user5 = context.getBean("user5", User.class);
User user6 = context.getBean("user6", User.class);
User user7 = context.getBean("user7", User.class);
System.out.println("user1 == user2 ? " + (user1 == user2));
System.out.println("user1 == user3 ? " + (user1 == user3));
System.out.println("user1 == user4 ? " + (user1 == user4));
System.out.println("user1 == user5 ? " + (user1 == user5));
System.out.println("user6 == user7 ? " + (user6 == user7));
}
@Bean(name= {"user6","user7"})
User getUer() {
User user = new User();
return user;
}
}
完整代码:014-spring-bean-name-alias
【Java学习资源】整理推荐
- 自定义 Bean 作用域
- Bean 的作用域
- maven 集成 tomcat 以 jar 的方式打包 web 应用
- Spring 依赖注入与依赖查找来源的区别
- Spring 依赖注入的处理过程与 DependencyDescriptor 的说明
- Spring 各种 Aware 接口回调注入
- Spring Bean 生命周期内的 Exception 复现
- Spring 内建 Bean
- Spring Bean 的别名
- Spring Bean 未指定名称的命名规则
- Bean 何时被 GC
- Spring Bean 延迟加载
- ObjectFactory 与 BeanFactory 的区别
- Bean 销毁的方式与顺序
- Bean 初始化的方式与顺序
- Bean 的实例化方式
- Bean的注册方式
- 什么是 BeanDefinition?
- Spring IoC 容器启动时做了什么?
- BeanFactory 与 FactoryBean 的区别
- BeanFactory 与 ApplicationContext 的区别
- Spring IoC 依赖注入的实现方式
- Spring IoC 依赖注入(支持哪些数据类型?)
- Spring bean 依赖查找
- Spring-IoC
- Spring 的核心特性