Size: a a a

2020 November 16

A

Alex in pro.jvm
Сделал выводы что бины создаются внутри классов которые мне недоступны для редактрования
источник

A

Alex in pro.jvm
бин customConversions определяется внутри класса RedisRepositoryConfigurationExtension в пакете org.springframework.data.redis.repository.configuration
источник

A

Alex in pro.jvm
второй бин создается внутри AbstractCouchbaseConfiguration
источник

AE

Alexandr Emelyanov in pro.jvm
Alex
Сделал выводы что бины создаются внутри классов которые мне недоступны для редактрования
ты в спринге, тут можно провернуть все что угодно
источник

AK

Alexander Komarov in pro.jvm
ну тогда все. этот проект придется закрыть и начать новый
источник

A

Alex in pro.jvm
у всех передоз негатива сегодня что-ли?
источник

D

Dima in pro.jvm
Alex
бин customConversions определяется внутри класса RedisRepositoryConfigurationExtension в пакете org.springframework.data.redis.repository.configuration
у тебя редис в проекте используется?
источник

D

Dima in pro.jvm
если да - ток вручную тогда переопределять какой-то из конфигов
источник

A

Alex in pro.jvm
Dima
у тебя редис в проекте используется?
Да
источник

A

Alex in pro.jvm
А как отменить эту конфигурацию бинов редиса? Я у себя ничего не расширял
источник

A

Alex in pro.jvm
@Configuration
public class RedisConfig {

   private final Logger log = LoggerFactory.getLogger(RedisConfig.class);

   @Bean
   RedisConnectionFactory redisConnectionFactory() {

       String host = SystemUtils.getEnv("REDIS_HOST", "localhost");
       int port = SystemUtils.getEnv("REDIS_PORT", 6379);

       JedisConnectionFactory jedisConnectionFactory = null;
       try {
           RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(host, port);
           jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);

       } catch (Exception e) {
           log.error("Ошибка соединения с Redis", e);
       }
       return jedisConnectionFactory;
   }

   @Bean
   public StringRedisTemplate stringRedisTemplate() {
       StringRedisTemplate stringRedisTemplate = null;
       try {
           stringRedisTemplate = new StringRedisTemplate(redisConnectionFactory());
           RedisConnection connection = stringRedisTemplate.getRequiredConnectionFactory().getConnection();
           log.info("Установил соединение с Redis");
       } catch (Exception e) {
           log.error("Ошибка соединения с Redis", e);
       }
       return stringRedisTemplate;
   }
}
источник

A

Alex in pro.jvm
А может быть такое что просто имена бинов совпали? И просто поменять имя предопределенного бина?
источник

A

Alex in pro.jvm
вот это внутри конфигурации Couch
источник

A

Alex in pro.jvm
@Bean(name = BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
 public CustomConversions customConversions() {
   return new CouchbaseCustomConversions(Collections.emptyList());
 }
источник

A

Alex in pro.jvm
имя бина как и у редиса
источник

A

Alex in pro.jvm
если бы можно было его просто переименовать...
источник

V

Vlad in pro.jvm
Alex
А как отменить эту конфигурацию бинов редиса? Я у себя ничего не расширял
Отнаследуй класс конфига, сделай oveeride метода, снеси объявление бина или переименуй его. Подключай свой конфиг
источник

A

Alex in pro.jvm
Понял, спасибо
источник

A

Alex in pro.jvm
всем )
источник

БТ

Бородатый Таракан... in pro.jvm
В спринге как-то можно протестить через рефлексию private методы?
Method myMethod = ClassImpl.class.getDeclaredMethod("myMethod",
       String.class, String.class, String.class, Tariff.class);
myMethod.setAccessible(true);
boolean output =
       (boolean) myMethod.invoke(validator, "a", "b", "c", tariff);

Где validator это
@Autowired
private MyValidatorInterface validator;

Проблема в том что (внезапно) на invoke говорится что это не его метод - логично потому что у интерфейса есть только его методы
А у имплентации они + private. Как поступить дальше чет хз. Только ради бога - я знаю что тестить private методы это очень плохо и за такое надо бить по рукам, но лучше скажите как протетстить, спасибою
источник