Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ConvidadoController required a bean of type ConvidadoRepository that could not be found

Boa noite,

Ao tentar seguir a aula 02 Configurando Spring Boot Data JPA estou me deparando com o seguinte erro:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field repository in br.com.springboot.listavip.ConvidadoController required a bean of type 'br.com.springboot.repository.ConvidadoRepository' that could not be found.


Action:

Consider defining a bean of type 'br.com.springboot.repository.ConvidadoRepository' in your configuration.

Todos os passos foram seguidos exatamente como a aula indicou, tentei diversas versões do spring boot, porém sem sucesso. Segue meus arquivos:

Pom:

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
    </dependencies>

Classe ConvidadoController:

package br.com.springboot.listavip;

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 br.com.springboot.model.Convidado;
import br.com.springboot.repository.ConvidadoRepository;

@Controller
public class ConvidadoController {

    @Autowired
    private ConvidadoRepository repository;

    @RequestMapping("/")
    public String index(){
        return "index";
    }

    @RequestMapping("listaconvidados")
    public String listaConvidados(Model model){

        Iterable<Convidado> convidados = repository.findAll();
        model.addAttribute("convidados", convidados);

        return "listaconvidados";
    }
}

Classe ConvidadoRepository:

package br.com.springboot.repository;

import org.springframework.data.repository.CrudRepository;

import br.com.springboot.model.Convidado;


public interface ConvidadoRepository extends CrudRepository<Convidado, Long>{

}

classe configuração:

package br.com.springboot.listavip;

import javax.sql.DataSource;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

/**
 * 
 * @author devel
 * classe responsavel por iniciar o projeto spring
 * nela informamaos que o SpringBoot ira gerenciar o projeto    
 */
@SpringBootApplication
public class Configuracao {

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

    @Bean
    public DataSource dataSource(){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/listavip");
        dataSource.setUsername("root");
        dataSource.setPassword("admin");
        return dataSource;
    }
}

Class Convidado:

package br.com.springboot.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity(name= "convidado")
public class Convidado {

    @Id
    @GeneratedValue
    private Long id;

    private String nome;
    private String email;
    private String telefone;

    public Long getId() {
        return id;
    }

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

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
}
1 resposta
solução!

Boa noite,

Consegui resolver o problema. aparentemente estava na extensão do pacote. ao colocar a classe Repository extenuado o pacote br.com.springboot.listavip.repository, o spring passou a reconhecer o bean

br.com.springboot.listavip
br.com.springboot.listavip.repository