2017-04-26 10 views
1

私はmvc + mongodbで非常に単純なSpringブートアプリケーションを構築しています。私は、Web、thymeleaf、およびmongoの依存関係を持つprojを作成するためにSpring初期化子を使用しました。 I 1つのコントローラ、一つのモデルとビューを持っているが、私はアプリを実行しようとするとエラーを取得し続ける:mongoTemplate beanが見つかりませんでした

Description: 

Field repo in com.example.CustomerController required a bean named 'mongoTemplate' that could not be found. 


Action: 

Consider defining a bean named 'mongoTemplate' in your configuration. 

CustomerController:

import model.Customer; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

/** 
* Created by Hello on 25/04/2017. 
*/ 

@Controller 
@RequestMapping("/home") 
public class CustomerController { 

    @Autowired 
    CustomerMongoRepo repo; 


    @RequestMapping(value = "/home", method= RequestMethod.GET) 
    public String viewingHome(Model model){ 
     //initDB(); 
     model.addAttribute("key", "THIS IS FROM THE MODEL"); 

     return "homepage"; 
    } 

} 

CustomerMongoRepo:

import org.springframework.data.repository.CrudRepository; 

     import model.Customer; 

public interface CustomerMongoRepo extends CrudRepository {} 

MainAppに:

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; 
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; 
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; 

@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) 
public class DemoApplication extends WebMvcAutoConfiguration { 


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

カスタマー・モデル:

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

/** 
* Created by Hello on 25/04/2017. 
*/ 

@Document(collection = "customerCollection") 
public class Customer { 
    @Id 
    private int id; 
    private String fName; 
    private String sName; 

    public Customer(){} 

    public Customer(int id, String fName, String sName){ 
     setfName(fName); 
     setsName(sName); 
     setId(id); 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getfName() { 
     return fName; 
    } 

    public void setfName(String fName) { 
     this.fName = fName; 
    } 

    public String getsName() { 
     return sName; 
    } 

    public void setsName(String sName) { 
     this.sName = sName; 
    } 


} 

マイアプリケーションプロパティ:

spring.data.mongodb.database=customer 
spring.data.mongodb.host=localhost 
spring.data.mongodb.port=27017 
spring.data.mongodb.uri=mongodb://localhost:27018/mydb 
spring.data.mongo.repositories.enabled=true 

答えて

6

あなたはMongoの設定を除いています。

@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) 

次に、どのようにmongoTemplateを作成しますか。この除外を削除するか、手動でMongoTemplateを作成し、アプリケーションコンテキストに登録します(@Beanを使用)

関連する問題