考虑在配置中定义类型 'com.example.conferencedemo.services.SessionService' 的 Bean



我正试图在企业级实现,他们有RepositoryServiceServicesImpl等文件夹

  1. 在服务中,他们有与方法声明的接口

  2. 在ServiceImpl中,他们有实现服务接口的类

  3. 在Repository中,他们拥有所有Repository接口

  4. BeanInjection是一个类,我们在其中拥有所有存储库、服务类和接口@自动连线注释。

  5. 当我试图实现"@"自动连线";到服务类获取此错误。

  6. 尝试过这个没有帮助的链接

  7. 尝试了这个没有帮助,但得到了环路错误链接

Controller.java

public class SessionController extends BeanInjectionService {
@GetMapping
public ResponseEntity<List<Session>> list(){
LOGGER.info("Request received to view the sessions");
List<Session> sessions = sessionService.findAll();
LOGGER.info("Successfully fetched all the sessions");
return new ResponseEntity<>(sessions, HttpStatus.OK);
}

SessionService.java(接口(

public interface SessionService {
List<Session> findAll();
}

SessionServiceImpl.java(类(

public class SessionServiceImpl  extends BeanInjectionService implements SessionService {
@Override
public List<Session> findAll(){
return sessionRepository.findAll();
}

BeanProjectService.java(类(


public class BeanInjectionService {
@Autowired
public SessionRepository sessionRepository;
**// Error Showing here while starting application
// Consider defining a bean of type 'com.example.conferencedemo.services.SessionService' in your configuration.**
@Autowired
public SessionService sessionService;
@Autowired
public SpeakerRepository speakerRepository;
@Autowired
public SpeakerService speakerService;
}

SessionRepository.java(接口(

public interface SessionRepository extends JpaRepository<Session,Long> {
}

提前感谢

我发现使用BeanInjectionService有点奇怪,但我会绕过它。

  1. 除非在SessionServiceImpl上添加@Service,否则无法自动布线
  2. 循环依赖-如果执行步骤1,它将创建一个循环依赖,因为SessionServiceImpl需要首先创建其超类对象(BeanInjectionService(。但是,除非找到SessionServiceImpl的对象,否则无法创建BeanInjectionService
  3. 要打破循环依赖关系,您只有一个选项。不要扩展BeanInjectionService。相反,自动将SessionRepository直接连接到SessionServiceImpl
@Service
public class SessionServiceImpl  implements SessionService {
@Autowired
private SessionRepository sessionRepository;
@Override
public List<Session> findAll(){
return sessionRepository.findAll();
}
}

最新更新