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自动连接,而您的用户服务正在等待缓存自动连接。我猜这是一种造成依赖性的问题。您可能需要重新安排逻辑以避免这种依赖关系。由于我不知道您的整个流程,我可能无法建议一个代码替代方案,但这应该能给您一个发生这种情况的要点。只是想知道它是否有帮助。谢谢您的回复,我重新安排了逻辑,这很有帮助。以后我会尽量避免这种情况:)