Şu satırı dahil ederiz
import org.springframework.beans.factory.config.ServiceLocatorFactoryBean
;
Örnek
Elimizde bir arayüz ve bunun iki tane gerçekleştirimi olsun
public interface TourService { public String place(TourAdvicer request); } @Service("Singapore") public class Singapore implements TourService { @Override public String place(TourAdvicer request) { ... } } @Service("Maldives") public class Maldives implements TourService { @Override public String place(TourAdvicer request) { ... } }
Bean ismine göre bulmak için bir registry yaratırız. Şöyle yaparız
public interface TourRegistry { public TourService getServiceBean(String serviceName); } //Now we need to register this registry class in our service locator // to get the desired bean config on run time @Configuration public class ServiceLocatorConfig { @Bean public FactoryBean<?> getBean() { ServiceLocatorFactoryBean bean = new ServiceLocatorFactoryBean(); bean.setServiceLocatorInterface(TourRegistry.class); return bean; } }
Şöyle yaparız
@Autowired TourRegistry registry; public String paymentAmount(@RequestBody String placeOfVisit) { return registry.getServiceBean(placeOfVisit).place(request);
}
Hiç yorum yok:
Yorum Gönder