2016-01-06 92 views
2

我正在使用Spring MVC編寫Web應用程序,發生錯誤,我不知道是什麼導致它。Java Spring註釋錯誤

我正在尋找任何解決方案,但添加註釋如@Component沒有幫助。

下面是類的代碼:

庫類:

@Repository("UserRepository") 
public interface UserRepository extends JpaRepository<User, Integer> { 

@Query("Insert INTO User Values(email,password)") 
public User AddUser(@Param("email") String email, @Param("password") String password); 
} 

Controller類:

@RestController 
public class UserActionController { 



private UserRepository userservice; 

@Autowired 
public UserActionController(UserRepository userservice) 
{ 
    this.userservice = userservice; 
} 


@RequestMapping(value = { "/zaloguj" }, method = RequestMethod.GET) 
public ModelAndView logowanie(@RequestParam String action) { 

    ModelAndView model = new ModelAndView(); 
    model.addObject("title", "Injected MVC title"); 
    model.addObject("message", "This is default page!"); 
    model.setViewName("zaloguj"); 
    userservice.AddUser("test", "test"); 
    return model; 
} 
} 

和錯誤:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userActionController' defined in file [C:\Users\bartlomiej.zuk\workspaceEclipse4\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\examplespringproject\WEB-INF\classes\com\mkyong\web\controller\UserActionController.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [com.mkyong.dao.UserRepository]: : No qualifying bean of type [com.mkyong.dao.UserRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.mkyong.dao.UserRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) 
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5236) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.mkyong.dao.UserRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813) 
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) 
... 24 more 
+1

嘗試在構造函數UserActionController上放置@Qualifier(「UserRepository」) –

回答

1

No qualifying bean of type [com.mkyong.dao.UserRepository]

這意味着春天不能實例化UserRepository。你不知何故應該告訴春天你的位置在哪裏。例如,你應該有一個像​​如下:

@Configuration 
@EnableJpaRepositories(basePackages="com.mkyong.dao") 
public class DataConfig { 
    // Put your DataSource, EntityManagerFactory, PlatformTransactionManager, etc here 
} 

basePackages="com.mkyong.dao"告訴Spring容器來尋找倉庫中com.mkyong.dao包。另外,當您使用Spring Data時,不需要註解@Repository