我得到下面的错误消息时,我正在运行我的Spring Boot 应用程序。
Description:
The dependencies of some of the beans in the application context form a cycle:
┌─────┐
| securityConfiguration (field private com.prity.springbootdemo1.service.UserService com.prity.springbootdemo1.config.SecurityConfiguration.userService)
↑ ↓
| userServiceImpl (field private org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder com.prity.springbootdemo1.service.UserServiceImpl.passwordEncoder)
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
4条答案
按热度按时间ruyhziif1#
您可以尝试使用这个。将它添加到文件application.properties
试着逃跑这不是最好解决办法,您还需要找到更好方法来解决问题
yfwxisqw2#
因此,如果您有一个类A,并且在将类A注入到类B的构造函数中时遇到了这个问题。在类B的构造函数中使用@Lazy注解。这将打破循环,并将A的bean缓慢地注入到B中。因此,它将创建一个代理将其注入到另一个bean中。
公共类循环依赖A {
csbfibhn3#
您是否已将您的Sping Boot 升级到2.6.0或更高版本?也许您应该修改您的SecurityConfiguration。请参阅this
在我的项目中,我这样做了。最后,它工作得很好。
vuv7lop34#
请不要使用构造函数注入,而只使用
@Autowired
注解,并在resources/ www.example.com文件中添加以下行application.properties例如: