Spring / Spring Beans
How to get all the Spring beans implementing a specific interface?
Using ApplicationContext.getBeansOfType method we can retrieve all the beans implementing a specific interface.
Usage: ApplicationContext.getBeansOfType(YourClass.class);
package net.javapedia.spring.beanoftype.example; import java.util.Map; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @Configuration public class AppConfig { @Bean public Repository mongoRepository() { return new MongoRepository(); } @Bean @Primary public Repository sqlRepository() { return new SQLRepository(); } public static void main(String[] args) throws InterruptedException { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); Map<String, Repository> beansList = context.getBeansOfType(Repository.class); for (String key : beansList.keySet()) { System.out.println(key + " = " + beansList.get(key)); } } }
Complete example is here.
More Related questions...