我正试图在企业级实现,他们有Repository、Service和ServicesImpl等文件夹
-
在服务中,他们有与方法声明的接口
-
在ServiceImpl中,他们有实现服务接口的类
-
在Repository中,他们拥有所有Repository接口
-
BeanInjection是一个类,我们在其中拥有所有存储库、服务类和接口@自动连线注释。
-
当我试图实现"@"自动连线";到服务类获取此错误。
-
尝试过这个没有帮助的链接
-
尝试了这个没有帮助,但得到了环路错误链接
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
有点奇怪,但我会绕过它。
- 除非在
SessionServiceImpl
上添加@Service
,否则无法自动布线 -
循环依赖-如果执行步骤1,它将创建一个循环依赖,因为
SessionServiceImpl
需要首先创建其超类对象(BeanInjectionService
(。但是,除非找到SessionServiceImpl
的对象,否则无法创建BeanInjectionService
- 要打破循环依赖关系,您只有一个选项。不要扩展
BeanInjectionService
。相反,自动将SessionRepository
直接连接到SessionServiceImpl
中
@Service
public class SessionServiceImpl implements SessionService {
@Autowired
private SessionRepository sessionRepository;
@Override
public List<Session> findAll(){
return sessionRepository.findAll();
}
}