@Autowired可以自动注入Map和List
public interface UserService {
}
@Order(2)
@Component("userServiceA")
public class UserServiceA implements UserService{
}
@Order(1)
@Component("userServiceB")
public class UserServiceB implements UserService{
}
@Component
public class RoleService {
@Autowired
private List<UserService> list;
@Autowired
private Map<String, UserService> map;
public void test() {
System.out.println(list);
System.out.println(map);
}
}
测试类
@Configuration
@ComponentScan("demo")
public class Test {
public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(Test.class);
((RoleService) applicationContext.getBean("roleService")).test();
}
}
输出结果
[demo.UserServiceB@553f1d75, demo.UserServiceA@2dbe250d]
{userServiceA=demo.UserServiceA@2dbe250d, userServiceB=demo.UserServiceB@553f1d75}
@Order注解可以控制自动注入list的顺序,但是不能知道map中的顺序