maven工程下写好A-interface与A-service,service实现了interface中的内容。并在service上写上了@Service,但是从A-web(@Autowired之类的注解都写好了)工程启动时,报错:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'registerServiceImpl'后面的省去了。
找了好久,发现自己没有写错, 后来折腾了半天, 才发现, 引入的@Service包引入错了
在AppApplicationService类上的@Service, 我的代码中引入了alibaba的Service类: import com.alibaba.dubbo.config.annotation.Service;
实际应该引入Spring的Service类: import org.springframework.stereotype.Service;
修改后, 问题消失。这种小细节在写代码时一定要注意包的正确性。否则到时还是自己吃亏!希望大家引以为戒。
还有一种情况是检查了没有什么写错的代码及导入的包名,但还会报相同的错误,这时可以在service层把配置的基本扫描包的范围扩大一层,也就是去掉后面的子包,例如:之前配置是<context:component-scan base-package="aaa.bbb.cc.dd"/>,这时修改为<context:component-scan base-package="aaa.bbb.cc"/>然后重启相应服务即可!