java - @Service 的 Spring @ComponentScan

标签 java spring spring-mvc autowired

我有一个名为 com.example.service 的包,在我的 Spring 配置类中我有注释 @ComponentScan({"com.example.service"},{"com .example.controller"})

当我尝试 @Autowire 服务时,代码编译失败并出现 NoSuchBeanDefinitionException。 MyService 接口(interface)使用 @Service 注释。

目前我使用了一个非常丑陋的解决方法,并在我的 ExampleConfig.java 中声明了每个服务 bean,例如

@Bean
public MyService myService() {
    return new MyServiceImpl();
}

通常 @ComponentScan 似乎可以工作,如果我删除 Controller 包,则找不到 Controller 。我理解错了什么?如果我遗漏了任何相关信息,请告诉我。

最佳答案

The MyService interface is annotated with @Service

您必须注释接口(interface)的实现。不是界面本身。

关于java - @Service 的 Spring @ComponentScan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26730388/

相关文章:

java - 以最少的内存使用遍历 Java 中的许多文件

java - Spring:分离的实体传递到持久化

java - Spring @Transactional 和 Hibernate @LockMode 注释如何相关

spring-mvc - 如何更改 spring 请求映射以禁止带有后缀的 url 模式

java - 如何在JAVA中查看请求域

java - 如何使用给定的构造函数创建对象

java - 当我扩展 ArrayList 或其他常见集合时,gwt 构建中出现奇怪的异常/错误

java - 使用 Apache POI 更改图像布局或包装在 DOCX 中

java - Maven 部署目标失败

java - Spring-MVC:使用 'select-options' 时获取完整的对象而不是字符串