我已经开始使用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)同一个项目中的模块时就会产生问题。
还在等待帮助!我尽我所能! 谢谢!