我正在尝试自动连接控制器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