2017-11-28 14 views
1

Springブートアプリケーションの起動に失敗しましたか?以下は見つからないタイプのBeanが必要です。Springブート

Here is my Project Structure

私のメインクラスです。

package com.example; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

    @SpringBootApplication 
    public class Start { 
     public static void main(String[] args) { 
      SpringApplication.run(Start.class, args); 
     } 
    } 

そして、私のコンソールが

2017-11-28 11:48:52.187 WARN 7316 --- [   main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
Description: 

Field userRepository in com.example.controller.UserController required a bean of type 'com.example.repository.UserRepository' that could not be found. 


Action: 

Consider defining a bean of type 'com.example.repository.UserRepository' in your configuration. 

Application.properties

spring.data.mongodb.host=localhost 
spring.data.mongodb.port=27017 
spring.data.mongodb.database=example 

UserRepositoryインターフェースここ

package com.example.repository; 

import org.springframework.data.mongodb.repository.MongoRepository; 

import com.example.model.User; 

public interface UserRepository extends MongoRepository<User, String>{ 
    public User findOneByName(String name); 
} 

は私のコントローラ

です
@RestController 
@RequestMapping("/user/") 
public class UserController { 
    @Autowired 
    public UserRepository userRepository; 
    @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
    public void create(@RequestBody User user){ 
     userRepository.save(user); 
    } 
} 
+1

多くの理由が考えられます。 'UserRepository'がマップされない理由は数多くあるかもしれないので、より詳細な構成情報を提供してください。 – vegaasen

+0

コンソールのセクションで詳細を追加しました。 plz check – Sankar

+0

このインターフェースを実装しているクラスcom.example.repository.UserRepositoryがクラスパスで利用可能かどうか、そして@Repositoryアノテーション – praveen

答えて

1

@EnableMongoRepositories(basePackages="com.example.repository")Startクラスに追加してみてください。

+0

これはリポジトリに配置されますか? – Sankar

+0

私が言及したように、スタートアップクラスです。あなたのケースのStart.class –

+0

org.springframework.beans.factory.UnsatisfiedDependencyExceptionのようなエラーがもう1つあります: 'userController'という名前のBeanを作成中にエラーが発生しました:フィールド 'userRepository'で表現されている不十分な依存関係 – Sankar

0

MongoRepositoryの代わりに、CrudRepositoryインターフェイスを試しました。そのうまく動作します。

関連する問題