Ajuda iniciante em spring boot

alterei o nome do meu projeto que estou estudando spring boot e agora ele nao consegue inicalizar, da o seguinte erro

Error starting ApplicationContext. To display the auto-configuration report re-run your application with ‘debug’ enabled.
2018-04-17 10:42:09.012 ERROR 10800 — [ main] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

Field stockDao in br.com.technicalAssistance.main.controller.StockController required a bean of type ‘br.com.technicalAssistance.core.dao.StockDao’ that could not be found.

Action:

Consider defining a bean of type ‘br.com.technicalAssistance.core.dao.StockDao’ in your configuration.

o que eu fiz de errado?

Só com estas informações fica complicado, mas, pode ser que você não tenha colocado uma das anotações abaixo:

@SpringBootApplication
@ComponentScan({"br.com.qlq"})
@EntityScan("br.com.qlq.domain")
@EnableJpaRepositories("br.com.qlq.repositories")
1 curtida

Quais voces precisam mais pra me ajudar?
Eu coloquei, estava tudo funcionando perfeitamente ate eu alterar o nome do projeto.

Só tenho esse erro quando uso a anotacao @Autowired no meu controller

Sim, isso vai acontecer pois você está referenciando um bean que o spring não encontra.

Como eu deveria colocar entao? O que é o bean? Minha classe StockDao existe
Segue o codigo do meu controller

@Autowired
private StockDao stockDao;

@GetMapping("/")
@ResponseBody
public String index() {
	return "Spring Boot";
}

@GetMapping("/list/{name}")
@ResponseBody
public ResponseEntity<List<Stock>> listStock(@PathVariable String name) {
	return new ResponseEntity<List<Stock>>(this.stockDao.getListStock(name), HttpStatus.OK);
}

StockDao é uma interface, é uma classe concreta?

StockDao é uma classe, não é uma interface

Pode postar o código dela?
Aliás, você está desenvolvendo isso seguindo algum tutorial/video/apostila/livro?

Estou indo por conta, ela é uma classe comum, que inclui, edita, exclui e faz consulta no banco de dados.

public class StockDao {

private final String PATHQUERYSELECT = "/query/stock/SelectScript.sql";
private final String PATHQUERYINSERT = "/query/stock/InsertScript.sql";
private final String PATHQUERYUPDATE = "/query/stock/UpdateScript.sql";
private final String PATHQUERYDELETE = "/query/stock/DeleteScript.sql";
private final Logger logger = Logger.getLogger(StockDao.class);
private Connection conn;

public StockDao() {
	conn = new ConnectionFactory().openConnection();
}

public List<Stock> getListStock(String nameProduto) {
	String query = openFile(PATHQUERYSELECT);
	List<Stock> stocks = new ArrayList<Stock>();
	try {
		ResultSet resultSet = ExecuteQuerySelect(this.conn,
				replaceValuesQuery(query, listParameters(":produto:"), listValues(nameProduto)));
		while (resultSet.next()) {
			int idEstoque = resultSet.getInt("id_estoque");
			int idProduto = resultSet.getInt("id_produto");
			String nmProduto = resultSet.getString("nm_produto");
			Date dtEntradaProduto = resultSet.getDate("dt_entrada_produto");
			int qtdProduto = resultSet.getInt("qtd_produto");
			String descricaoProduto = resultSet.getString("dc_produto");
			stocks.add(new Stock(idEstoque, nmProduto, dtEntradaProduto, qtdProduto, descricaoProduto, idProduto));
		}

		return stocks;
	} catch (SQLException e) {
		this.logger.info("Error to get result data");
		return null;
	}
}

public boolean addStock(Stock stock) {
	String query = openFile(PATHQUERYINSERT);
	List<String> parameters = listParameters(":nm_produto:", ":dt_entrada_produto:", ":qtd_produto:",
			":dc_produto:");
	List<String> values = listValues(stock.getNmProduto(), stock.getDtEntradaProduto().toString(),
			new Integer(stock.getQtdProduto()).toString(), stock.getDescricaoProduto());

	try {
		ExecuteQueryUpdate(this.conn, replaceValuesQuery(query, parameters, values));
		this.logger.info("Data successfully saved");
		return true;
	} catch (SQLException e) {
		this.logger.info("Error to insert data in database");
		return false;
	}
}

public boolean updateStock(Stock stock) {
	String query = openFile(PATHQUERYUPDATE);
	List<String> parameters = listParameters(":nm_produto:", ":dt_entrada_produto:", ":qtd_produto:",
			":dc_produto:", ":id_produto:");
	List<String> values = listValues(stock.getNmProduto(), stock.getDtEntradaProduto().toString(),
			new Integer(stock.getQtdProduto()).toString(), stock.getDescricaoProduto());

	try {
		ExecuteQueryUpdate(this.conn, replaceValuesQuery(query, parameters, values));
		this.logger.info("Data updated with successful");
		return true;
	} catch (SQLException e) {
		this.logger.info("Error to update data in database");
		return false;
	}
}

public boolean deleteStock(Stock stock) {
	String query = openFile(PATHQUERYDELETE);
	List<String> parameters = listParameters(":id_produto:");
	List<String> values = listValues(new Integer(stock.getIdProduto()).toString());

	try {
		ExecuteQueryUpdate(this.conn, replaceValuesQuery(query, parameters, values));
		this.logger.info("Data deleted with successful");
		return true;
	} catch (SQLException e) {
		this.logger.info("Error to delete data in database");
		return false;
	}
}

}

Quando você define um @Autowired precisa que o Spring conheça o bean que deve ser injetado.
Se você tivesse seguindo um tutorial/livro/apostila/vídeo, seria muito mais produtivo.
Você não incluiu, na classe StockDao, a anotação informando que ele é um bean gerenciado pelo Spring. Como esta é uma classe que interage com o banco de dados, o correto é anotá-la com @Repository.

Adicionei essa anotação na classe, porém o erro continua…

mais alguem?

Cara, eu fiz uma pesquisa simples e rápida no google e, nas 3 primeiras respostas, obtive a mesma informação:
Faltam anotações referentes ao JPA.
Eu acho (só acho, nada pessoal) que você está com preguiça de ler ou de pesquisar. Pelo tempo entre a minha resposta anterior e a tua, já era mais que tempo de ter feito uma varredura na internet e revisado tudo o que você mesmo fez.
De qualquer forma, seguem os links das pesquisas:

Link 1
Link 2
Link 3

Desculpa fodao da pesquisa, você está achando errado, pois como disse, estou estudando spring boot, ou seja estou tendo dificuldades! Obrigado pelos links mesmo assim

Está estudando como? Qual livro? Qual apostila? Qual vídeo aula?
Se você disser, quem sabe podemos direcionar as dúvidas de maneira mais adequada.
Porém, é inconcebível que você estude algo e não siga algum exemplo, não acha? Afinal, a ideia de estudar é ler/ouvir/assistir, entender e reproduzir, após isso, repetir o processo. Independente do que seja, o processo de aprendizado é esse.

2 curtidas

Boa noite @matheussilva,
voce resolveu seu problema ?
Comecou a rolar comigo isso agora

Para aqueles que tiverem esse problema, na anotação @EnableJpaRepository coloque o caminho do pacote que possua seus repositórios. Ex:

@EnableJpaRepositories(basePackages = {“curso.api.rest.repository”})