Spring源码分析之AliasRegistry(1)
AliasRegistry顾名思义为别名注册表,就是存储别名的地方,首先看一下别名的使用
别名的使用
public class UserService {
public void userList() {
System.out.println("userList");
}
}
UserService是一个简单的JavaBean,
@Configuration
public class BeanConfig {
@Bean({"userService", "userService1", "userService2", "userService3"})
public UserService userService() {
return new UserService();
}
}
我们使用JavaConfig来配置一个Bean,如果没有配置name,spring就会取方法名作为name,如果配置了,取第一个值,剩余的会当做别名处理
这是spring对Bean注解的处理。
public class Client {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig.class);
UserService userService = context.getBean(UserService.class);
userService.userList();
System.out.println("==========");
String[] contextAliases = context.getAliases("userService");
for (String contextAlias : contextAliases) {
System.out.println(contextAlias);
}
}
}
输出结果为
userList
==========
userService3
userService2
userService1
spring会将userService当做bean的name,将userService1,userService2,userService3当做bean的别名