Springboot实战系列之@Autowired注入类的list

一个回调接口有多种回调逻辑,在项目启动时需要将回调接口的实现类都放到一个list中然后回调每个实现类的具体方法。在Springboot中就可以通过@Autowired来将回调接口的所有实现类进行注入。

Demo

回调接口: ServiceTest

public interface ServiceTest {
    public String getName();
}

实现类1

@Component
public class ServiceTestImpl1 implements ServiceTest {
    @Override
    public String getName() {
        return "ServiceTestImpl1";
    }
}

实现类2

@Component
public class ServiceTestImpl2 implements ServiceTest {
    @Override
    public String getName() {
        return "ServiceTestImpl2";
    }
}

实现类3

@Component
public class ServiceTestImpl3 implements ServiceTest {
    @Override
    public String getName() {
        return "ServiceTestImpl3";
    }
}

测试类

@Component
public class Test implements InitializingBean {

    @Autowired
    private List<ServiceTest> serviceTests;

    public String serviceTest() {
        StringBuffer sb = new StringBuffer();
        for (ServiceTest serviceTest : serviceTests) {
            sb.append(serviceTest.getName());
            sb.append(" ");
        }
        return sb.toString();
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println(serviceTest());
    }
}

输出

ServiceTestImpl1 ServiceTestImpl2 ServiceTestImpl3 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。