我正在尝试自动连接控制器bean中的接口

在我的上下文配置文件中

<context:annotation-config />




<bean id="viewVerbale" class="com.sirfe.controller.VerbaliController" />


我的控制器类是

@Controller
public class VerbaliController {


    @Autowired
    VerbaliRepository repository;

    private static final Logger logger = LoggerFactory.getLogger(VerbaliController.class);


    @RequestMapping(value = "/sirfe/verbale/{sequVerbale:.+}", method = RequestMethod.GET)
    public ModelAndView viewVerbale(@PathVariable("sequVerbale") String sequVerbale) {

        logger.debug("welcome() - sequVerbale {}", sequVerbale);

        Verbali verbale = repository.findOne(Long.parseLong(sequVerbale));


        ModelAndView model = new ModelAndView();
        model.setViewName("sirfe/verbali/viewVerbale");
        model.addObject("sequVerbale", sequVerbale);

        return model;

    }

}


我的界面签名是

public interface VerbaliRepository extends CrudRepository<Verbali, Long>  { }


当我启动我的应用程序时

 Could not autowire field: com.sirfe.repository.VerbaliRepository com.sirfe.controller.VerbaliController.repository; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.sirfe.repository.VerbaliRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.

最佳答案

看起来您正在尝试使用Spring JPA存储库。

为了让Spring为您的存储库接口创建bean,您需要在applicationContext.xml中声明要扫描的包

<jpa:repositories base-package="com.sirfe.repository" />


这样做,Spring将为您生成实现接口的bean。

Spring JPA Repositories

09-16 04:25