2017-04-26 47 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

相关问题