从Spring容器中获取Bean实例
package com.jiangyongkang.active.record;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import javax.sql.DataSource;
@Configuration
public class SpringBootStarterAutoConfig implements InitializingBean, ApplicationContextAware {
private static final Logger logger = LoggerFactory.getLogger(SpringBootStarterAutoConfig.class);
@Override
public void afterPropertiesSet() {
logger.info("Initializing SpringBootStarterAutoConfig");
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.setApplicationContext(applicationContext);
}
}
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
public class SpringContextUtil {
private static ApplicationContext applicationContext;
public static void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
public static ApplicationContext applicationContext() {
return applicationContext;
}
public static <T> T findBean(Class<T> beanClass) throws BeansException {
return applicationContext.getBean(beanClass);
}
}