Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring @PostConstruct调用自动连接调用方类的服务_Spring - Fatal编程技术网

Spring @PostConstruct调用自动连接调用方类的服务

Spring @PostConstruct调用自动连接调用方类的服务,spring,Spring,我有两门课: @Component public class Cache { @Autowired private UserService userService; @PostConstruct public void init() { userService.doSth(); } } @Service public class UserServiceImpl implements UserService { @Autowi

我有两门课:

@Component
public class Cache {

    @Autowired
    private UserService userService;

    @PostConstruct
    public void init() {
        userService.doSth();
    }
}

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private Cache cache;

    @Autowired
    private UserRepository repository;

    @Override
    public void doSth() {
        repository.doSth();
    }
}
如果我想部署我的应用程序,我会遇到以下异常: org.springframework.beans.factory.BeanCreationException:创建名为“cache”的bean时出错:调用init方法失败

并且UserServiceImpl中的所有自动连接字段都为空

如果我从我的服务中删除@Autowired private Cache部分,那么它可以正常工作


有什么想法吗

以下是施工后的定义

构造后注释用于需要修改的方法 在完成依赖项注入后执行,以执行任何 初始化。必须在放置类之前调用此方法 投入使用


在您的流程中,我相信您正在等待缓存与userService自动连接,而您的用户服务正在等待缓存自动连接。我猜这是一种造成依赖性的问题。您可能需要重新安排逻辑以避免这种依赖关系。由于我不知道您的整个流程,我可能无法建议一个代码替代方案,但这应该能给您一个发生这种情况的要点。

只是想知道它是否有帮助。谢谢您的回复,我重新安排了逻辑,这很有帮助。以后我会尽量避免这种情况:)