【发布时间】:2019-02-02 08:23:35
【问题描述】:
我想在由工厂模式初始化的类中自动装配存储库。
让我一步一步解释。
我的存储库类:
@Repository
public class UserRepository {
//
}
使用存储库类并扩展一些抽象类的其他类:
public class OtherClass extends AbstractClass {
@Autowired
private UserRepository userRepository;
//
}
现在我在 Factory 类上创建了初始化这个 OtherClass 并放入一张地图。
@Component
public class TempFactory {
private final Map<Class, AbstractTest> impletationMap = new HashMap<>();
@Autowired
ApplicationContext context;
@PostConstruct
public void initialize() {
populateDataMapperMap(context.getBeansOfType(AbstractTest.class).values().iterator());
}
private void populateDataMapperMap(final Iterator<AbstractClass> classIterator) {
while (classIterator.hasNext()) {
AbstractTest abstractClassImpl = (AbstractClass) classIterator.next();
impletationMap.put(abstractClassImpl.getClass(), abstractClassImpl);
}
}
}
现在的问题是放在impletationMap中的对象没有自动装配userRepository并返回null。
Output:
Otherclass oc = (AbstractClass)impletationMap.get("key")
userRepository is null in oc object.
我通过This link来解决这个问题
请告诉我下一步该怎么做。
谢谢。
【问题讨论】:
标签: java spring-boot