2017-08-03 33 views
2

私はSpring MVCを初めて使用しました。私はUnsatisfiedDependencyExceptionに直面しています。私はstereotype annotationsを追加しましたが、まだ私は同じ問題に直面しています。UnsatisfiedDependencyException: 'userController'という名前のBeanを作成できませんでした:未対応の依存関係

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [com.demo.app.service.UserService]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} looking positive replay.

UserControllerで:

@CrossOrigin 
@RestController 
public class UserController { 

@Autowired(required=true) 
private UserService userService; 

@RequestMapping(value = { "/userSave" },consumes = {"multipart/form-data"}, method = RequestMethod.POST) 
@ResponseBody 
public String saveUserDetails(@RequestPart(value="file",required=false) MultipartFile file, 
     @RequestPart("user")User user, 
     HttpSession session, HttpServletRequest request, 
     HttpServletResponse response){ 
     System.out.println("data reached...!"); 
     String result=userService.saveUserData(user,session); 
     return result; 

} 

}

UserServiceの:

public interface UserService { 
    public String saveUserData(User user,HttpSession session); 
} 

UserServiceImpl:

@Service("userService") 
public class UserServiceImpl implements UserService{ 

@Autowired 
UserRepository userRepository; 

public String saveUserData(User user,HttpSession session){ 
    String output; 
    Date regDate=new Date(); 
    user.setRegDate(regDate); 
    output= userRepository.saveUserData(user); 
    return output; 
} 

}

UserRepository:

@Component 
@Transactional 
public class UserRepository extends BaseRepository{ 

@Autowired 
protected SessionFactory sessionFactory; 


public String saveUserData(User user) { 

    final Session session = (Session) getSessionFactory(); 
    try { 
     session.beginTransaction(); 
     Query query=session.createQuery("UPDATE User set user_Name =:userName," 
       + "reg_Date =:regDate,img_Id=:imgId"); 
     query.setParameter("userName", user.getUserName()); 
     query.setParameter("regDate", user.getRegDate()); 
     query.setParameter("imgId", user.getImgId()); 
     query.setParameter("emailId", user.getImgId()); 
     session.save(user); 
     session.getTransaction().commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

}

spring.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd 
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd 
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd 
        "> 

    <context:annotation-config /> 

    <context:component-scan base-package="com.demo.app" /> 
    <mvc:default-servlet-handler /> 

    <mvc:annotation-driven> 
     <mvc:message-converters register-defaults="true"> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 
       <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> 
      </bean> 
     </mvc:message-converters> 
    </mvc:annotation-driven> 

    <bean id="jspViewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/html/" /> 
     <property name="suffix" value="html" /> 
    </bean> 

    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/UserDB" /> 
     <property name="username" value="root" /> 
     <property name="password" value="password" /> 
    </bean> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.demo.app.model.User</value> 

      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
      </props> 
     </property> 
    </bean> 

    <tx:annotation-driven transaction-manager="transactionManager" /> 
    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 
    <bean 
     class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
     <property name="exceptionMappings"> 
      <props> 
       <prop key="java.lang.Exception">Error</prop> 
      </props> 
     </property> 
    </bean> 
    <bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <property name="maxUploadSize" value="2097152" /> 
    </bean> 
</beans> 

エラー:

SEVERE: Context initialization failed 
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [com.demo.app.service.UserService]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
    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:751) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) 
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 

は実装の近くにあるべきインタフェースではありませんあなた

+0

コンポーネントスキャンの外観とパッケージ宣言はどうですか? – Jens

+0

@Jensあなたのリプレイに感謝します。私は春に投稿できますか?xmlファイル – umapathi

+0

は、サービスが注入されたコントローラコードを表示します –

答えて

1

最後に、.spring依存関係のjarファイルのバージョンが一致しません。すべてのバネ依存バージョンは同じです。

 <dependencies> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-config</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-aop</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-config</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-tx</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jdbc</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-orm</artifactId> 
    <version>4.2.3.RELEASE</version> 
</dependency> 
    </dependencies> 
3

@Service("userService")をありがとう、私を助けてください。サービス実装の

+0

これもチェックしますが動作しません – umapathi

+0

次に、この豆を作成しないでください。サービスはコンポーネントスキャンパッケージに含まれていません –

+0

コンポーネントスキャンを追加した後にチェックしてください – umapathi

1

@service注釈の使用は、ないインターフェイスにインターフェイスは...

0

実際のサービスの実装とだけ他のロジックにのみマッピングコントローラであるため、「依存性[com.demo.appが見つかりません予選ビーン。 service.UserService]:autowire候補となる少なくとも1つのbeanが必要です。 "

上記のエラーは、UserService Beanが作成されなかったことを意味します。 ここで正しい基本パッケージを提供しているかどうか確認してください。

また、注釈をUserRepository @ Componentから@Repositoryに変更することもできますか。

関連する問題