Как остановить автоматическое подключение Spring Data CassandraJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как остановить автоматическое подключение Spring Data Cassandra

Сообщение Anonymous »

У меня есть приложение Spring Boot 4, которое использует Cassandra в качестве хранилища данных. Я пытаюсь использовать кеш aot Java 25 для выполнения обучения в моем файле докеров:

Код: Выделить всё

RUN java -XX:AOTCacheOutput=mycache.aot -jar my app.jar
Однако, когда это будет выполнено, у меня не будет работать Cassandra. Поэтому я хотел бы выполнить тренировочный прогон без автоматического подключения к Кассандре. Вот моя конфигурация:

Код: Выделить всё

@Configuration(proxyBeanMethods = false)
@EnableCassandraRepositories("com.sb4cassandra.demo.repository")
@ComponentScan("com.sb4cassandra.demo")
public class SpringConfig {
@Bean
public CqlSessionFactoryBean session(final CassandraConfig config, final DriverConfigLoader driverConfigLoader) {
CqlSessionFactoryBean cqlSessionFactoryBean = new CqlSessionFactoryBean();
cqlSessionFactoryBean.setContactPoints(config.getCassandraHosts());
cqlSessionFactoryBean.setKeyspaceName(config.getCassandraKeyspace());
cqlSessionFactoryBean.setPort(config.getCassandraPort());
cqlSessionFactoryBean.setLocalDatacenter(config.getCassandraDatacenterName());
cqlSessionFactoryBean.setSessionBuilderConfigurer(sessionBuilder -> sessionBuilder.withConfigLoader(driverConfigLoader));
return cqlSessionFactoryBean;
}

@Bean
public SessionFactoryFactoryBean sessionFactory(final CqlSession session, final CassandraConverter converter) {
SessionFactoryFactoryBean sessionFactory = new SessionFactoryFactoryBean();
sessionFactory.setSession(session);
sessionFactory.setConverter(converter);
sessionFactory.setSchemaAction(SchemaAction.NONE);
return sessionFactory;
}

@Bean
public CqlTemplate getCqlTemplate(final SessionFactory sessionFactory) {
CqlTemplate cqlTemplate = new CqlTemplate(sessionFactory);
cqlTemplate.setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM);
cqlTemplate.setSerialConsistencyLevel(ConsistencyLevel.LOCAL_SERIAL);
return cqlTemplate;
}

@Bean
public CassandraTemplate cassandraTemplate(final CqlTemplate cqlTemplate, final CassandraConverter converter) {
return new CassandraTemplate(cqlTemplate, converter);
}
У меня также есть несколько репозиториев cassandra (и связанных с ними bean-компонентов), например:

Код: Выделить всё

@Repository
public interface DemoRepository extends CassandraRepository {
}
Единственный способ остановить автоматическое соединение, который я нашел, — это аннотировать каждый конфигурационный компонент, указанный выше, с помощью @Lazy, а каждый репозиторий cassandra — с помощью @Lazy. Есть ли лучший способ?

Подробнее здесь: https://stackoverflow.com/questions/798 ... connecting
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»