SpringIoc容器對象獲取工具,解決反射出來的對象的屬性注入爲空的問題。

(此工具可以通過類名或者class從spring容器中獲取對象實例)
 有效的解決了反射出來的對象裏面的注入的對象爲空的問題
@Slf4j
@Component
public class GetBeanUtil implements ApplicationContextAware {
    
    protected static ApplicationContext context;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if(GetBeanUtil.context == null) {
            GetBeanUtil.context = applicationContext;
        }
       log.info("========ApplicationContext配置成功,在普通類可以通過調用SpringUtils.getAppContext()獲取applicationContext對象");
    }

    //獲取applicationContext
    public static ApplicationContext getApplicationContext() {
        return context;
    }
    //通過name獲取 Bean
    public static Object getBean(String name) {
        //name表示其他要注入的註解name名
        return context.getBean(name);
    }

    //通過class獲取Bean
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }

    //通過name,以及Clazz返回指定的Bean
    public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name, clazz);
    }

}

 

用法:

 Class cals = Class.forName("全類名ClassName");
 RenewRateObserver obj = (RenewRateObserver)GetBeanUtil.getBean(cals);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章