没有找到类型[java.lang.Class]的限定bean用于依赖[java.lang.Class <org.springframework.data.repository.repository <?,?=“”>&gt;]

时间:2017-03-02 14:12:00

标签: spring spring-data spring-data-neo4j spring-data-neo4j-4 spring-data-cassandra

我已经开始使用Spring框架了。在这里,我正在使用Spring Data - Cassandra Repository模块化应用程序。我可以单独测试一个spring-data-cassandra应用程序,而当我尝试在项目中使用moudle并从其他模块扫描组件包时...

<context:component-scan base-package="example.dao,example.domain" />

我收到错误

  

找不到依赖[example.domain.EventRepository]类型的[example.domain.EventRepository]类型的限定bean:期望至少有1个bean符合此依赖关系的autowire候选资格。依赖注释:{}

如果需要,我可以与您分享代码。

我为其他模块所做的工作正常。

我无法解决问题所在。

请在下面找到DAO CLASS的代码。

@Service 
@Transactional
public class EventDao {

@Autowired
private EventRepository eventRepository;

/*public EventDao(EventRepository eventRepository) {

    this.eventRepository = eventRepository;
}*/

private final static Logger logger = LoggerFactory.getLogger(EventDao.class);

public Event saveMember(Event member) {
    eventRepository.save(member);

    return member;
}
}

我的存储库界面。

package example.domain;

import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.cassandra.repository.Query;

public interface EventRepository extends CassandraRepository<Event> {

@Query("select * from event where type = ?0 and bucket=?1")
Iterable<Event> findByTypeAndBucket(String type, String bucket);
}

我的Cassandra配置类。

package example;


@Configuration
@PropertySource(value = { "classpath:cassandra.properties" })
@EnableCassandraRepositories(basePackages = { "example" })
 public class CassandraConfiguration extends AbstractCassandraConfiguration {

private static final Logger LOG = LoggerFactory.getLogger(CassandraConfiguration.class);

@Autowired
private Environment environment;

@Bean
public CassandraClusterFactoryBean cluster() {
    CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
    cluster.setContactPoints(environment.getProperty("cassandra.contactpoints"));
    cluster.setPort(Integer.parseInt(environment.getProperty("cassandra.port")));
    return cluster;
}

@Override
protected String getKeyspaceName() {
    return environment.getProperty("cassandra.keyspace");
}

@Bean
public CassandraMappingContext cassandraMapping() throws ClassNotFoundException {
    return new BasicCassandraMappingContext();
}
}

更新

我能够与其他服务模块分别创建单独的spring-data-cassandra和spring-data-neo4j模块,并且它在两个模块中都能正常工作。 但是我在同一个项目中有另一个带有Neo4j spring-data-neo4j模块的模块,当我尝试同时运行两个(neo4j + cassandra)同一个项目中的模块时就会产生问题。

还在等待帮助!我尽我所能! 谢谢!

0 个答案:

没有答案