gpt4 book ai didi

java - 如何使用 mongodb 应用程序修复 Spring Boot 中的 UnsatisfiedDependencyException?

转载 作者:行者123 更新时间:2023-12-02 05:44:27 24 4
gpt4 key购买 nike

我正在尝试将我的 Spring Boot 应用程序数据库从 H2 更改为 MongoDB。我已经更新了 application.properties 文件并删除了所有“@Entity”和“@Column”并添加了“@Document”。我收到的错误是:

Description:

Parameter 0 of constructor in smartspace.dao.rdb.RdbActionDao required a bean named 'mongoTemplate' that could not be found.

Action:

Consider defining a bean named 'mongoTemplate' in your configuration.

完整的控制台日志:

2019-05-13 12:48:55.477  INFO 15596 --- [           main] smartspace.Application                   : Starting Application on LAPTOP-E00E1JFN with PID 15596 (D:\git\2019b.giron.aptik.smartspace\bin started by Lael in D:\git\2019b.giron.aptik.smartspace)
2019-05-13 12:48:55.480 INFO 15596 --- [ main] smartspace.Application : The following profiles are active: production,default
2019-05-13 12:48:56.313 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2019-05-13 12:48:56.316 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-05-13 12:48:56.354 INFO 15596 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data JPA - Could not safely identify store assignment for repository candidate interface smartspace.dao.rdb.ActionCrud.
2019-05-13 12:48:56.356 INFO 15596 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data JPA - Could not safely identify store assignment for repository candidate interface smartspace.dao.rdb.ElementCrud.
2019-05-13 12:48:56.475 INFO 15596 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data JPA - Could not safely identify store assignment for repository candidate interface smartspace.dao.rdb.UserCrud.
2019-05-13 12:48:56.503 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 180ms. Found 1 repository interfaces.
2019-05-13 12:48:56.517 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2019-05-13 12:48:56.518 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-05-13 12:48:56.533 INFO 15596 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data MongoDB - Could not safely identify store assignment for repository candidate interface smartspace.dao.rdb.GenericIdGeneratorCrud.
2019-05-13 12:48:56.542 INFO 15596 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 23ms. Found 3 repository interfaces.
2019-05-13 12:48:56.947 INFO 15596 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2019-05-13 12:48:56.952 INFO 15596 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2019-05-13 12:48:56.956 INFO 15596 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2019-05-13 12:48:57.078 INFO 15596 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$14f03da7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-05-13 12:48:57.093 INFO 15596 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.hateoas.config.HateoasConfiguration' of type [org.springframework.hateoas.config.HateoasConfiguration$$EnhancerBySpringCGLIB$$94708ad9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-05-13 12:48:57.104 INFO 15596 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration$$EnhancerBySpringCGLIB$$7fe1f8d6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-05-13 12:48:57.117 INFO 15596 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-05-13 12:48:57.721 INFO 15596 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8089 (http)
2019-05-13 12:48:57.746 INFO 15596 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-05-13 12:48:57.746 INFO 15596 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.16]
2019-05-13 12:48:57.757 INFO 15596 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [D:\integrationcourse\jdk8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\WINDOWS\System32\OpenSSH\;C:\Users\Lael\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Python27\python.exe;;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;C:\Users\Lael\AppData\Local\Microsoft\WindowsApps;C:\Users\Lael\AppData\Roaming\npm;C:\Program Files\MongoDB\Server\4.0\bin;;C:\Program Files\JetBrains\WebStorm 2018.3.1\bin;;C:\Program Files\heroku\bin;.]
2019-05-13 12:48:57.855 INFO 15596 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-05-13 12:48:57.856 INFO 15596 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2335 ms
2019-05-13 12:48:58.157 INFO 15596 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-05-13 12:48:58.265 INFO 15596 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-05-13 12:48:58.332 INFO 15596 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2019-05-13 12:48:58.388 INFO 15596 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.7.Final}
2019-05-13 12:48:58.389 INFO 15596 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2019-05-13 12:48:58.506 INFO 15596 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-05-13 12:48:58.645 INFO 15596 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Hibernate:

drop table generic_id_generator if exists
Hibernate:

drop sequence if exists hibernate_sequence
Hibernate: create sequence hibernate_sequence start with 1 increment by 1
Hibernate:

create table generic_id_generator (
id bigint not null,
primary key (id)
)
2019-05-13 12:48:59.321 INFO 15596 --- [ main] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@1d6713dd'
2019-05-13 12:48:59.323 INFO 15596 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-05-13 12:48:59.356 WARN 15596 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'rdbActionDao' defined in file [D:\git\2019b.giron.aptik.smartspace\bin\smartspace\dao\rdb\RdbActionDao.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'actionCrud': Cannot resolve reference to bean 'mongoTemplate' while setting bean property 'mongoOperations'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mongoTemplate' available
2019-05-13 12:48:59.356 INFO 15596 --- [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2019-05-13 12:48:59.356 INFO 15596 --- [ main] .SchemaDropperImpl$DelayedDropActionImpl : HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'
Hibernate:

drop table generic_id_generator if exists
Hibernate:

drop sequence if exists hibernate_sequence
2019-05-13 12:48:59.363 INFO 15596 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2019-05-13 12:48:59.365 INFO 15596 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2019-05-13 12:48:59.368 INFO 15596 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2019-05-13 12:48:59.378 INFO 15596 --- [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-05-13 12:48:59.422 ERROR 15596 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :

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

Description:

Parameter 0 of constructor in smartspace.dao.rdb.RdbActionDao required a bean named 'mongoTemplate' that could not be found.


Action:

Consider defining a bean named 'mongoTemplate' in your configuration.

这是我的 smartspace.dao.rdb.RdbActionDao:

package smartspace.dao.rdb;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import smartspace.dao.EnhancedActionDao;
import smartspace.data.ActionEntity;

@Repository
public class RdbActionDao implements EnhancedActionDao{
private ActionCrud actionCrud;
private GenericIdGeneratorCrud genericIdGeneratorCrud;
@Value("${smartspace.name}")
private String ourSmartspaceName;
@Autowired
public RdbActionDao(
ActionCrud actionCrud,
GenericIdGeneratorCrud genericIdGeneratorCrud) {
super();
this.actionCrud = actionCrud;
this.genericIdGeneratorCrud = genericIdGeneratorCrud;
}

@Override
@Transactional
public ActionEntity create(ActionEntity actionEntity) {
// SQL: INSERT INTO ACTION (ID, NAME) VALUES (?,?);

GenericIdGenerator nextId =
this.genericIdGeneratorCrud.save(new GenericIdGenerator());
if(actionEntity.getActionSmartspace() == null) {
actionEntity.setKey(Long.toString(nextId.getId()) +"#"+ ourSmartspaceName);
this.genericIdGeneratorCrud.delete(nextId);
}
if (!this.actionCrud.existsById(actionEntity.getKey())) {
ActionEntity rv = this.actionCrud.save(actionEntity);
return rv;
}else {
throw new RuntimeException("Action already exists with key: " + actionEntity.getKey());
}
}


@Override
@Transactional(readOnly=true)
public List<ActionEntity> readAll() {
List<ActionEntity> rv = new ArrayList<>();
// SQL: SELECT
this.actionCrud.findAll()
.forEach(rv::add);

return rv;
}

@Override
@Transactional
public void deleteAll() {
// SQL: DELETE
this.actionCrud.deleteAll();
}

@Override
@Transactional(readOnly=true)
public List<ActionEntity> readAll(int size, int page) {
return this.actionCrud
.findAll(PageRequest.of(page, size))
.getContent();
}


@Override
@Transactional(readOnly=true)
public List<ActionEntity> readActionWithElementIdContaining(
String elementId,
int size,
int page) {

return this.actionCrud
.findAllByElementId(
elementId,
PageRequest.of(page, size));
}

@Override
@Transactional(readOnly=true)
public List<ActionEntity> readActionAvaiable(
Date fromDate,
Date toDate,
int size, int page) {
return this.actionCrud
.findAllByCreationTimestampBetween(
fromDate, toDate,
PageRequest.of(page, size));
}

@Override
public List<ActionEntity> readAll(String sortBy, int size, int page) {
return this.actionCrud
.findAll(PageRequest.of(
page, size,
Direction.ASC, sortBy))
.getContent();
}

@Override
@Transactional(readOnly=true)
public Optional<ActionEntity> readById(String actionKey) {
return this.actionCrud.findById(actionKey);
}
}

这是我的EnhancedActionDao:

package smartspace.dao;

import java.util.Date;
import java.util.List;
import java.util.Optional;

import smartspace.data.ActionEntity;

public interface EnhancedActionDao extends ActionDao{
public List<ActionEntity> readAll(int size, int page);
public List<ActionEntity> readAll(String sortBy, int size, int page);
public List<ActionEntity> readActionWithElementIdContaining (String text, int size, int page);
public List<ActionEntity> readActionAvaiable (
Date fromDate, Date toDate,
int size, int page);
Optional<ActionEntity> readById(String actionKey);

}

这是我的 ActionDao:

package smartspace.dao;

import smartspace.data.ActionEntity;

public interface ActionDao {

public ActionEntity create(ActionEntity actionEntity);
public java.util.List<ActionEntity> readAll();
public void deleteAll();
}

这是我的Application.java:

package smartspace;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);

}
}

这是我的 application.properties:

smartspace.name =2019B.giron.aptik.smartspace


name.for.user.generator=World


spring.profiles.active=production,default

spring.jpa.hibernate.ddl-auto=create-drop

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE


server.port = 8089


spring.data.mongodb.uri=mongodb://laelav:laelav1@integrationcourse-shard-00-00-7bsmm.mongodb.net:27017,integrationcourse-shard-00-01-7bsmm.mongodb.net:27017,integrationcourse-shard-00-02-7bsmm.mongodb.net:27017/test?ssl=true&replicaSet=integrationcourse-shard-0&authSource=admin&retryWrites=true
spring.data.mongodb.host=integrationcourse-shard-00-01-7bsmm.mongodb.net
spring.data.mongodb.repositories.enabled=true
spring.data.mongodb.port=27017
spring.data.mongodb.database=course
spring.data.mongodb.username=laelav
spring.data.mongodb.password=laelav1

感谢您提前提供的帮助!

EDIT:
After adding the MongoTemplate Bean I have a new error:

>Description:

>The dependencies of some of the beans in the application context form a cycle:

>???????
>| rdbActionDao defined in file [D:\git\2019b.giron.aptik.smartspace\bin\smartspace\dao\rdb\RdbActionDao.class]
>? ?
>| actionCrud
>???????

最佳答案

我认为 mongoTemplate 存在依赖性问题。请将此代码添加到您的 dao 中。

    @Bean public MongoTemplate mongoTemplate() throws Exception 
{
return new MongoTemplate(mongo(), "database_name");
}

认为这可能会有所帮助,mongo() 是您的 mongo 客户端。

关于java - 如何使用 mongodb 应用程序修复 Spring Boot 中的 UnsatisfiedDependencyException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56110027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com