繁体   English   中英

"考虑在配置中定义“com.example.conferencedemo.services.SessionService”类型的 bean"

[英]Consider defining a bean of type 'com.example.conferencedemo.services.SessionService' in your configuration

我正在尝试实现企业级,它们有像Repository<\/strong> , Service<\/strong> , ServiceImpl<\/strong>这样的文件夹

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

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

  3. 在存储库中,它们具有所有存储库接口

  4. BeanInjection 是一个类,我们在其中拥有所有存储库和服务类以及带有@Autowired<\/strong>注释的接口。

  5. 当我尝试对服务类实施“@Autowired”时出现此错误。

  6. 试过这个没有帮助的链接<\/a>

  7. 试过这个没有帮助,但得到循环错误链接<\/a>

    控制器.java<\/strong>

     SessionService.java(接口)<\/strong>

     SessionServiceImpl.java(类)<\/strong>

     BeanInjectionService.java(类)<\/strong>

     SessionRepository.java(接口)<\/strong>

    提前致谢<\/strong>

    "

我发现使用BeanInjectionService<\/code> ,但我会回答它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM