2017-08-11 6 views
-7

私はSpring MVC Frameworkを初めて使用しています。これが私の最初のプロジェクトです。私は、データベースとしてMongoDBを使用してUsers文書に対してCRUD操作を実装しようとしています。Spring MVC、Maven、CRUD、MongoDB

エラー:

UnsatisfiedDependencyException:エラー名でBeanを作成する 'UserControllerで':不満の依存関係は、フィールドを通して表現 'UserServiceの';

NoSuchBeanDefinitionException: 'com.mthree.service.UserService'タイプの適格なBeanがありません:予期しない候補の1つ以上のBeanが必要です。 NoSuchBeanDefinitionException:によって引き起こさ

「com.mthree.service.UserService」入手可能であるタイプの無修飾ビーン:autowire候補としての資格が期待少なくとも1ビーン。

SEVERE:例外クラスorg.springframework.web.context.ContextLoaderListener java.lang.IllegalStateExceptionのインスタンスをリスナーにコンテキスト初期化イベントを送信する:ルートアプリケーションコンテキストの存在がすでに存在するため、コンテキストを初期化できません - チェックをするかどうかweb.xmlに複数のContextLoader *定義があります!

コンソール出力

Connected to server 
[2017-08-11 02:46:49,025] Artifact LivePrice:war exploded: Artifact is being deployed, please wait... 
Aug 11, 2017 2:46:52 PM org.apache.catalina.startup.TldConfig execute 
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
Aug 11, 2017 2:46:52 PM org.apache.catalina.core.ApplicationContext log 
INFO: 1 Spring WebApplicationInitializers detected on classpath 
Aug 11, 2017 2:46:52 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
Aug 11, 2017 2:46:55 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
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 of type 'com.mthree.service.UserService' available: 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:588) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 
    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:761) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) 
    at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1899) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618) 
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) 
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) 
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) 
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) 
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346) 
    at sun.rmi.transport.Transport$1.run(Transport.java:200) 
    at sun.rmi.transport.Transport$1.run(Transport.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mthree.service.UserService' available: 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.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) 
    ... 60 more 

Aug 11, 2017 2:46:55 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml! 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:296) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5116) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) 
    at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1899) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618) 
    at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) 
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) 
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) 
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) 
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346) 
    at sun.rmi.transport.Transport$1.run(Transport.java:200) 
    at sun.rmi.transport.Transport$1.run(Transport.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Aug 11, 2017 2:46:55 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file 
Aug 11, 2017 2:46:55 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [] startup failed due to previous errors 
Aug 11, 2017 2:46:55 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
Aug 11, 2017 2:46:55 PM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
[2017-08-11 02:46:55,453] Artifact LivePrice:war exploded: Error during artifact deployment. See server log for details. 
Aug 11, 2017 2:46:58 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory C:\Users\murli\Downloads\apache-tomcat-7.0.79-windows-x64\apache-tomcat-7.0.79\webapps\manager 
Aug 11, 2017 2:46:58 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deployment of web application directory C:\Users\murli\Downloads\apache-tomcat-7.0.79-windows-x64\apache-tomcat-7.0.79\webapps\manager has finished in 205 ms 

のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.mthree</groupId> 
    <artifactId>LivePrice</artifactId> 
    <version>1.0.0</version> 

    <packaging>war</packaging> 

    <dependencies> 
     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.3.10.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.3.10.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.3.10.RELEASE</version> 
     </dependency> 


     <!-- jstl --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- MongoDB Java Driver --> 


     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-mongodb</artifactId> 
      <version>1.10.6.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>2.12.3</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 


    <!-- Processes application requests --> 
    <servlet> 
     <servlet-name>LivePrice</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <!-- <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
     </init-param>--> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>LivePrice</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <!-- The definition of the Root Spring Container shared by all Servlets and Filters --> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/LivePrice-servlet.xml</param-value> 
    </context-param> 


    <!-- Creates the Spring Container shared by all Servlets and Filters --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


</web-app> 

LivePrice:

以下のファイルは、プロジェクトの構成やコードを表示します-servlet.x mlの

<?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:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> 

    <mvc:annotation-driven /> 
    <context:annotation-config /> 

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

</beans> 

のAppConfig

import com.mongodb.Mongo; 
import com.mongodb.MongoClient; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.data.mongodb.MongoDbFactory; 
import org.springframework.data.mongodb.core.MongoTemplate; 
import org.springframework.data.mongodb.core.SimpleMongoDbFactory; 
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 
import org.springframework.web.servlet.view.JstlView; 

import java.net.UnknownHostException; 

@Configuration 
@EnableWebMvc 
public class AppConfig extends WebMvcConfigurerAdapter { 

    @Bean 
    public InternalResourceViewResolver ViewResolver() { 

     InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); 
     internalResourceViewResolver.setViewClass(JstlView.class); 
     internalResourceViewResolver.setPrefix("/"); 
     internalResourceViewResolver.setSuffix(".jsp"); 
     return internalResourceViewResolver; 
    } 

    @Override 
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){ 
     configurer.enable(); 
    } 

私はせずにMongoDbFactory & MongoTemplateを使用することができません:: UnknownHostExceptionが

@Bean 
    public MongoDbFactory mongoDbFactory() throws UnknownHostException { 
     return new SimpleMongoDbFactory(new MongoClient("localhost", 27017), "test"); 
    } 

    @Bean 
    public MongoTemplate mongoTemplate() throws UnknownHostException { 
     MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory()); 
     return mongoTemplate; 
    } 

} 

AppInitializer

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class <?>[] getRootConfigClasses(){ 
     return new Class[] {AppConfig.class}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses(){ 
     return null; 
    } 

    @Override 
    protected String[] getServletMappings(){ 
     return new String[] { "/" }; 
    } 

} 
0123をスローします

モデル

import org.springframework.data.annotation.Id; 
import org.springframework.data.mongodb.core.mapping.Document; 

@Document 
public class User { 

    @Id 
    private String id; 
    private String Firstname; 
    private String Lastname; 
    private String Email; 
    private String Password; 
    private long CountryCode; 
    private long MobileNumber; 
    private String City; 
    private String Address; 

    public User(){ 
     super(); 
    } 

    //with constructors, getters and setters 

コントローラ

@Controller 
@RequestMapping(value="/user") 
public class UserController { 

    @Autowired 
    UserService userService; 

    @RequestMapping(value="/list", method= RequestMethod.GET) 
    public ModelAndView list(){ 
     ModelAndView model = new ModelAndView("user/list"); 
     model.addObject("listUser", userService.listUser()); 
     return model; 
    } 

    @RequestMapping(value="/add", method=RequestMethod.GET) 
    public ModelAndView add(){ 
     ModelAndView model = new ModelAndView("user/form"); 
     model.addObject("userForm", new User()); 

     return model; 
    } 

    @RequestMapping(value="/update/{id}", method=RequestMethod.GET) 
    public ModelAndView update(@PathVariable("id") String id){ 
     ModelAndView model = new ModelAndView("user/form"); 
     model.addObject("userForm", userService.findUserById(id)); 
     return model; 

    } 

    @RequestMapping(value="/update/{id}", method=RequestMethod.POST) 
    public String save(@ModelAttribute("userForm") User user){ 
     if(user.getId() != null && !user.getId().trim().equals("")){ 
      userService.update(user); 
     }else{ 
      userService.add(user); 
     } 

     return "redirect/list"; 
    } 

    @RequestMapping(value="/delete/{id}", method=RequestMethod.GET) 
    public String delete(@PathVariable("id") String id){ 
     User user = userService.findUserById(id); 

     userService.delete(user); 

     return "redirect:user/list"; 
    } 

} 

ダオ

public interface UserDao { 

    public List<User> listUser(); 

    public void add(User user); 

    public void update(User user); 

    public void delete(User user); 

    public User findUserById(String id); 


} 

DAOImpl - クラスがなぜわからない(使用されることはありませんか?)

public class UserDaoImpl implements UserDao { 

    @Autowired 
    MongoTemplate mongoTemplate; 
    private static final String COLLECTION_NAME = "user"; 

    public List<User> listUser() { 
     return mongoTemplate.findAll(User.class, COLLECTION_NAME); 
    } 

    public void add(User user) { 
     if(!mongoTemplate.collectionExists(User.class)){ 
      mongoTemplate.createCollection(User.class); 
     } 
     user.setId(UUID.randomUUID().toString()); 
     mongoTemplate.insert(user, COLLECTION_NAME); 
    } 

    public void update(User user) { 
     mongoTemplate.save(user); 
    } 

    public void delete(User user) { 
     mongoTemplate.remove(user, COLLECTION_NAME); 
    } 

    public User findUserById(String id) { 
     return mongoTemplate.findById(id, User.class); 
    } 
} 

サービス

UserServiceの

@Service 
public interface UserService { 


    public List<User> listUser(); 

    public void add(User user); 

    public void update(User user); 

    public void delete(User user); 

    public User findUserById(String id); 
} 

UserServiceImpl - ?クラスがなぜわからない(使用されることはありません)

public class UserServiceImpl implements UserService{ 

    @Autowired 
    UserDao userDao; 

    public List<User> listUser() { 
     return userDao.listUser(); 
    } 

    public void add(User user) { 
     userDao.add(user); 
    } 

    public void update(User user) { 
     userDao.update(user); 
    } 

    public void delete(User user) { 
     userDao.delete(user); 
    } 

    public User findUserById(String id) { 
     return userDao.findUserById(id); 
    } 
} 
+3

あまりにも多くのものあなたはオートワイヤリングの問題を抱えています。なぜあなたのアプリ全体をここに投稿するのですか? – duffymo

答えて

2

より慎重にエラーメッセージをお読みください。

NoSuchBeanDefinitionException: No qualifying bean of type **'com.mthree.service.UserService'** available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

あなたはあなたのBeanがその制御下にある春を伝えるために注釈を追加する必要があります:

@Service(value = "userService") 
public class UserServiceImpl implements UserService{ 
関連する問題