2017-04-26 48 views
1

我正在用mvc + mongodb構建一個非常簡單的Spring啓動應用程序。我使用Spring初始化器來創建帶有web,thymeleaf和mongo依賴項的proj。我有一個控制器,一個模型和視圖,但我不斷獲取試圖執行應用程序時出現錯誤: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

您排除蒙戈配置。

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

那麼spring怎麼會爲你創建mongoTemplate。刪除此排除或手動創建MongoTemplate並將其註冊到應用程序上下文(使用@Bean

相關問題