spring批量注册bean到容器 --- BeanFactoryAware

769 阅读1分钟

实现 BeanFactoryAware

@Component
public class RetrofitBeanFactoryAware implements BeanFactoryAware {

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        DefaultListableBeanFactory listableBeanFactory = (DefaultListableBeanFactory) beanFactory;
        //ClassUtil 糊涂工具包里的
        Set<Class<?>> classes = ClassUtil.scanPackageByAnnotation("com.xxx", YourAnnotation.class);
        for (Class<?> aClass : classes) {
            try {
                //想要注入的对象
                Object o = aClass.newInstance();
                listableBeanFactory.registerSingleton(aClass.getName(), o);
            } catch (Exception ignored) {

            }
        }
    }
}