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.
Pode postar o código dela?
Aliás, você está desenvolvendo isso seguindo algum tutorial/video/apostila/livro?
M
matheussilva
Estou indo por conta, ela é uma classe comum, que inclui, edita, exclui e faz consulta no banco de dados.
public class StockDao {
privatefinalStringPATHQUERYSELECT="/query/stock/SelectScript.sql";privatefinalStringPATHQUERYINSERT="/query/stock/InsertScript.sql";privatefinalStringPATHQUERYUPDATE="/query/stock/UpdateScript.sql";privatefinalStringPATHQUERYDELETE="/query/stock/DeleteScript.sql";privatefinalLoggerlogger=Logger.getLogger(StockDao.class);privateConnectionconn;publicStockDao(){conn=newConnectionFactory().openConnection();}publicList<Stock>getListStock(StringnameProduto){Stringquery=openFile(PATHQUERYSELECT);List<Stock>stocks=newArrayList<Stock>();try{ResultSetresultSet=ExecuteQuerySelect(this.conn,replaceValuesQuery(query,listParameters(":produto:"),listValues(nameProduto)));while(resultSet.next()){intidEstoque=resultSet.getInt("id_estoque");intidProduto=resultSet.getInt("id_produto");StringnmProduto=resultSet.getString("nm_produto");DatedtEntradaProduto=resultSet.getDate("dt_entrada_produto");intqtdProduto=resultSet.getInt("qtd_produto");StringdescricaoProduto=resultSet.getString("dc_produto");stocks.add(newStock(idEstoque,nmProduto,dtEntradaProduto,qtdProduto,descricaoProduto,idProduto));}returnstocks;}catch(SQLExceptione){this.logger.info("Error to get result data");returnnull;}}publicbooleanaddStock(Stockstock){Stringquery=openFile(PATHQUERYINSERT);List<String>parameters=listParameters(":nm_produto:",":dt_entrada_produto:",":qtd_produto:",":dc_produto:");List<String>values=listValues(stock.getNmProduto(),stock.getDtEntradaProduto().toString(),newInteger(stock.getQtdProduto()).toString(),stock.getDescricaoProduto());try{ExecuteQueryUpdate(this.conn,replaceValuesQuery(query,parameters,values));this.logger.info("Data successfully saved");returntrue;}catch(SQLExceptione){this.logger.info("Error to insert data in database");returnfalse;}}publicbooleanupdateStock(Stockstock){Stringquery=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(),newInteger(stock.getQtdProduto()).toString(),stock.getDescricaoProduto());try{ExecuteQueryUpdate(this.conn,replaceValuesQuery(query,parameters,values));this.logger.info("Data updated with successful");returntrue;}catch(SQLExceptione){this.logger.info("Error to update data in database");returnfalse;}}publicbooleandeleteStock(Stockstock){Stringquery=openFile(PATHQUERYDELETE);List<String>parameters=listParameters(":id_produto:");List<String>values=listValues(newInteger(stock.getIdProduto()).toString());try{ExecuteQueryUpdate(this.conn,replaceValuesQuery(query,parameters,values));this.logger.info("Data deleted with successful");returntrue;}catch(SQLExceptione){this.logger.info("Error to delete data in database");returnfalse;}}
}
D
darlan_machado
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.
M
matheussilva
Adicionei essa anotação na classe, porém o erro continua…
M
matheussilva
mais alguem?
D
darlan_machado
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:
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
D
darlan_machado2 likes
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.
G
GladsonReis
Boa noite @matheussilva,
voce resolveu seu problema ?
Comecou a rolar comigo isso agora
A
alisson.teixeira
Para aqueles que tiverem esse problema, na anotação @EnableJpaRepository coloque o caminho do pacote que possua seus repositórios. Ex: