import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * Manually inject beans */ @Component public class ApplicationContextUtil implements ApplicationContextAware { @Autowired private static ApplicationContext context; /** * Get ApplicationContext */ public static ApplicationContext getApplicationContext() { return context; } /** * Insert ApplicationContext */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; } /** * Get Bean by name */ public static Object getBean(String name) { return getApplicationContext().getBean(name); } /** * Get Bean by class. */ public static <T> T getBean(Class<T> clazz) { return getApplicationContext().getBean(clazz); } /** * Return the specified Bean by name and Clazz */ public static <T> T getBean(String name, Class<T> clazz) { return getApplicationContext().getBean(name, clazz); } }
use
Implemented in the object of new
private final RatePaymentService ratePaymentService = ApplicationContextUtil.getBean(RatePaymentService.class);
Equivalent to