我有一个抽象类
public abstract class SecSchema {
........
}
我有一些儿童班。我有以下服务与所有接口的实现。
@Service
public class SecSchemaService {
@Autowired
Collection<SecSchema> secSchemas;
....getters and setters....
}
当我在控制器中进行DI时:
@Autowired
private SecSchemaService secSchemaService;
它运作正常。 但是我有另一个抽象类:
public abstract class Currecny {
@Autowired
SecSchemaService secSchemaService;
...... }
在子课程中,我有以下代码:
@Component
public class USD extends Currecny implements PreValidateListener {
@PostConstruct
public void registerListeners() { secSchemaService.getSecSchemas(); }
因为集合
,我得到了NullPointerExceptionsecSchemaService.secSchemas
为空。 我不知道为什么,但收集在课后美元初始化。我尝试使用注释@Dependson,但它没有帮助。 如果我注射
@Autowired
Collection<SecSchema> secSchemas;
在美元课程中它可以正常工作。因此,只有当我注入集合SecSchemaService的包装器时,它才能正常工作
答案 0 :(得分:0)
我有很多乐趣和游戏结构试图使用尚未初始化的其他bean。
保证其工作的方法是忘记post构造并拥有一个为ContextRefreshedEvent实现ApplicationListener的bean,然后在那里进行最终的初始化。您可以在其中注入任何现有的bean,并进行所需的任何手动连接。不理想,但工作正常。
答案 1 :(得分:0)
还有一个美元的班级孩子,它被标记为@Component。 那就是问题所在。只有层次结构中的最后一个类必须标记为@Component,因为我只需要这个类。