@Autowired注入Map,List

@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中的顺序

发布了37 篇原创文章 · 获赞 1 · 访问量 1055

猜你喜欢

转载自blog.csdn.net/zhuchencn/article/details/103874514