# 自定义依赖获取 当程序中存在着不止一个依赖管理的时候,想要从其他依赖仓库中获取依赖怎么办? 首先,这个'其他的依赖管理'需要能够通过代码获取依赖。假如他只能通过注解获取依赖的话,我也是无能为力的。 然后,你需要实现一个接口`DependGetter`: > 全包路径:`com.forte.qqrobot.depend.DependGetter` ```java /** * 通过实现此接口以指定一个获取资源实例的方法 * @since JDK1.8 **/ public interface DependGetter { /** * 通过Class对象获取实例 */ <T> T get(Class<T> clazz); /** * 通过名称和类型获取指定类型的对象实例 */ <T> T get(String name, Class<T> type); /** * 仅通过名称获取对象实例 */ Object get(String name); /** * 获取常量参数 * 常量参数:8大基本数据类型、8大基础数据类型的封装类、String类 */ <T> T constant(String name, Class<T> type); /** * 获取常量参数 * 常量参数:8大基本数据类型、8大基础数据类型的封装类、String类 */ Object constant(String name); } ``` 然后将实现了此接口的实例在配置类中进行配置。 ```java // 通过对象实例 setDependGetter(DependGetter dependGetter); // 通过包名和类加载来配置 setDependGetter(String packPath) throws ClassNotFoundException, InstantiationException, IllegalAccessException; ``` > `配置`章节也更新了以上配置 > 配置了自定义依赖获取后,在获取依赖的时候就会优先通过配置的函数获取,当获取不到的时候才会使用框架内部的获取方式。 * 获取依赖获取器 假如你希望通过代码获取依赖,就像我对其他依赖管理的期望那样,你可以通过从启动器类中的方法 ```java DependGetter getDependGetter(); ``` 来获取。 > 所谓的启动器类不是指你实现了接口的启动器,而是执行`run`方法的启动器哦