首页 文章

如何在spring-servlet.xml中自动装配crud存储库?

提问于
浏览
1

当我们在spring mvc中使用crud存储库时,我们得到以下错误

4352 [本地主机 - startStop-1] ERROR org.springframework.web.context.ContextLoader - 上下文初始化失败org.springframework.beans.factory.BeanCreationException:错误创建名为 'frCpbController' beans :自动装配依赖注射失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.service.FrCpbManager com.act.group.internal.controller.FrCpbController.frCpbManager;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}位于org.springframework.beans的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) . factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(在Org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:296)的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)处的AbstractAutowireCapableBeanFactory.java:458 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java :293)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)处org.springframework org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) . org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java)中的org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)中的context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932): 410)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)在org.apache.catalina.core.StandardContext .listenerStart(StandardContext.java:4853)位于org.apache.catali的org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) na.util.LifecycleBase.start(LifecycleBase.java:145)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1408)在org.apache.catalina.core.ContainerBase $ StartChild.call( ContainerBase.java:1398)在java.util.concurrent.FutureTask.run(来源不明)在java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(来源不明) at java.lang.Thread.run(Unknown Source)引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.service.FrCpbManager com.act.group.internal.controller .FrCpbController.frCpbManager;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean依赖:预期至少有1个bean有资格作为autowire候选者依赖 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) . beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286)... 22更多引起:org.springframework.beans .factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}位于org.springframework.beans的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) . factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(在Org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:296)的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)处的AbstractAutowireCapableBeanFactory.java:458 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java :293)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)org.springframework的org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:912) . bean.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:855)位于org.springframework.beans.factory.factory.AnotowAnnotationBeanPostProcessor的org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489)... 24更多引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group . internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) . beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286)... 35更多引起:org.springframework.beans .factory.NoSuchBeanDefinitionException:找不到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean依赖:期望至少有1个bean符合此依赖关系的autowire候选者 . 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework.beans的org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988) . factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858)at atorg.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489)... 37更多Apr 06 ,2017 12:55:22 PM org.apache.catalina.core.StandardContext listenerStart SEVERE:异常将上下文初始化事件发送到类的监听器实例org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException:Error创建名为'frCpbController'的bean:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.service.FrCpbManager com.act.group.internal.controller.FrCpbController.frCpbManager;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}位于org.springframework.beans的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) . factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(在Org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:296)的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)处的AbstractAutowireCapableBeanFactory.java:458 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java :293)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)处org.springframework org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628) . org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java)中的org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)中的context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932): 410)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)在org.apache.catalina.core.StandardContext .listenerStart(StandardContext.java:4853)位于org.apache.catali的org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) na.util.LifecycleBase.start(LifecycleBase.java:145)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1408)在org.apache.catalina.core.ContainerBase $ StartChild.call( ContainerBase.java:1398)在java.util.concurrent.FutureTask.run(来源不明)在java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(来源不明) at java.lang.Thread.run(Unknown Source)引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.service.FrCpbManager com.act.group.internal.controller .FrCpbController.frCpbManager;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepocom.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) . beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286)... 22更多引起:org.springframework.beans .factory.BeanCreationException:创建名为'FrCpbManager'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group.internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}位于org.springframework.beans的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) . factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1146)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(在Org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:296)的org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)处的AbstractAutowireCapableBeanFactory.java:458 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java :293)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)org.springframework的org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:912) . bean.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:855)位于org.springframework.beans.factory.factory.AnotowAnnotationBeanPostProcessor的org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489)... 24更多引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.act.group.internal.dao.FrCpbRepo com.act.group . internal.service.FrCpbManager.itemA;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean:期望至少有一个bean符合此依赖关系的autowire候选资格 . 依赖注释:{org.springframework.beans.factory.annotation.Autowired(required = true)}在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:517) . beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:286)... 35更多引起:org.springframework.beans .factory.NoSuchBeanDefinitionException:找不到类型为[com.act.group.internal.dao.FrCpbRepo]的限定bean依赖:期望至少有1个bean符合此依赖关系的autowire候选者 . 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)} atorg.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988)位于org.springframework.beans.factory的org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) . support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770)在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489)... 37个

请帮助我们解决上述问题 .

1 回答

  • 4

    你的问题不明确,但如果你想在spring MVC项目中使用CrudRepository:

    1 - 创建界面:

    @Repository
    public interface UserDao extends CrudRepository<User, Long>{
    
    }
    

    2扫描存储库:

    <jpa:repositories base-package="*****" />
        <tx:annotation-driven />
    

    3 - 创建服务和服务Imp:

    public interface UserService {
    
        public User findOne(Long id);
    ...
    }
    

    并使用注释@Resource在服务中使用存储库

    @Service
    public class UserServiceImpl implements UserService {
    @Resource
        UserDao userRepository;
    @Override
        public User findOne(Long id) {
    
            User user = userRepository.findOne(id);
            return user;
        }
    

    4扫描服务:

    <context:component-scan base-package="*****" />
    

    5-autowired服务并在控制器中使用它:

    @Controller
    @RequestMapping("/")
    public class LoginController {
    
        @Autowired
        private UserService userService;
    ...
    

相关问题