Java 在SpringMVC中无法从单独的服务包中找到bean

Java 在SpringMVC中无法从单独的服务包中找到bean,java,spring,eclipse,spring-mvc,autowired,Java,Spring,Eclipse,Spring Mvc,Autowired,我得到的错误是没有这样的定义异常, 我目前正在开发一个web应用程序,用于集成一些DB功能。 我的结构如下 domain.mainpackage +ControllerClass +SomeOtherClass domain.DAOpackage +someDAOClass +someDAOimpl domain.service +MainService +MainServiceImpl 我遇到的问题是,控制器在构建应用程序时无法找到MainSe

我得到的错误是没有这样的定义异常, 我目前正在开发一个web应用程序,用于集成一些DB功能。 我的结构如下

domain.mainpackage
    +ControllerClass
    +SomeOtherClass
domain.DAOpackage
    +someDAOClass
    +someDAOimpl
domain.service
    +MainService
    +MainServiceImpl
我遇到的问题是,控制器在构建应用程序时无法找到MainServiceClass的bean(请参阅下面的错误)

我已经将我的实现类注释为@Service

    @Service
    public class MainServiceImpl implements someDAOClass{
    @Autowired
    private someDAOClass someDAOClass1;
    @Transactional
    public list<someDAOClass> getSomeDAOClass(){
    //return statement here
    }
}
@服务
公共类MainServiceImpl实现了someDAOClass{
@自动连线
私有的somedao类somedao类1;
@交易的
公共列表getSomeDAOClass(){
//返回语句在这里
}
}
此外,我的DAO类被注释为@Repository,非事务性。昨天我只用了一把刀就达到了预期的效果,但是现在我做了一些改变,我不知道为什么它不能一起工作

我曾尝试在我的控制器上使用@ComponentScan,以防万一,但那是徒劳的。
由于我使用的是STS(Eclipse),似乎无法创建根包并将控制器作为另一篇SO文章中建议的解决方案保留在那里。因此,除了在system explorer中更改体系结构之外,我正在寻找其他解决方案。

您的服务实现类应该实现服务,而不是DAO

@Service
public class MainServiceImpl implements MainService {
您应该定义bean,例如:

@Bean
public MainService mainService(){
    return new MainServiceImpl ();
}
错误是

没有“domain.service.MainService”类型的合格bean可用


MainServiceImpl是someDAOClass,而不是MainService。因此,您应该实施MainService。

不用担心,包括控制器上的组件扫描解决了问题,谢谢您的回答。不用担心,包括控制器上的组件扫描解决了问题,谢谢您的回答。
@Bean
public MainService mainService(){
    return new MainServiceImpl ();
}