spring-boot 注入bean

spring-boot 注入bean

配置

/**
 * @description Spring 工具類
 * @author 李銘浩
 * @date 2017年8月16日
 * @porject spring-boot-helloworld
 */
//@Component
public class SpringUtil implements ApplicationContextAware {

	private static ApplicationContext applicationContext = null;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		if (SpringUtil.applicationContext == null) {
			SpringUtil.applicationContext = applicationContext;
		}
	}
	
    /**
     * @description 獲取applicationContext
     * @author 李銘浩
     * @date 2017年8月16日
     * @return
     */
    public static ApplicationContext getApplicationContext() {
       return applicationContext;
    }
    
    /**
     * @description 經過class獲取Bean.
     * @author 李銘浩
     * @date 2017年8月16日
     * @param clazz
     * @return
     */
    public static <T> T getBean(Class<T> clazz){
       return getApplicationContext().getBean(clazz);
    }
    
    /**
     * @description 經過name,以及Clazz返回指定的Bean
     * @author 李銘浩
     * @date 2017年8月16日
     * @param name
     * @param clazz
     * @return
     */
    public static <T> T getBean(String name,Class<T> clazz){
       return getApplicationContext().getBean(name, clazz);
    }

}

注入方法一

@Component
public class SpringUtil implements ApplicationContextAware {
}

注入方法二

在App.java 中注入beanjava

@Bean
public SpringUtil springUtil2(){return new SpringUtil();}

注入方法三

@Import(value={SpringUtil.class})spring

@SpringBootApplication
@ServletComponentScan
@Import(value={SpringUtil.class})
public class App {
    ...
}
相關文章
相關標籤/搜索